我用输入的平方来训练模型
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
// Prepare the model for training: Specify the loss and the optimizer.
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
const inputs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
const outputs = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256]
// Generate some synthetic data for training. (y = x*x)
const xs = tf.tensor2d(inputs, [inputs.length, 1]);
const ys = tf.tensor2d(outputs, [outputs.length, 1]);
console.log(xs.print())
console.log(ys.print())
// Train the model using the data.
model.fit(xs, ys, {epochs: 250}).then(() => {
model.predict(tf.tensor2d([70], [1, 1])).print();
});
但是,输出仍然不正确或接近正确。
1条答案
按热度按时间nukf8bse1#
问题在于模型。
您希望通过线性回归了解非线性关系(您的模型是线性的)。
为了更有效地学习,你需要增加更多的层次和它们之间的非线性激活函数。