![](/img/trans.png)
[英]how to pass several tensor to a model.predict in tensorflow.js
[英]tensorflow.js model.predict() Prints Tensor [[NaN],]
我对机器学习和 tensorflow.js 完全陌生,我正在尝试预测下一组的值,但结果是“NaN”。 我究竟做错了什么 ?
async function myFirstTfjs(arr) {
// Create a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [2]}));
// Prepare the model for training: Specify the loss and the optimizer.
model.compile({
loss: 'meanSquaredError',
optimizer: 'sgd'
});
const xs = tf.tensor([[1,6],
[2,0],
[3,1],
[4,2],
[5,3],
[6,4],
[7,5],
[8,6],
[9,0],
[10,1],
[11,2],
[12,3],
[13,4],
[14,5],
[15,6],
[16,0],
[17,1],
[18,2],
[19,3],
[20,4],
[21,5],
[22,6],
[23,0],
[24,1],
[25,2],
[26,3]]);
const ys = tf.tensor([104780,30280,21605,42415,32710,30385,35230,97795,31985,34570,35180,30095,36175,57300,104140,30735,28715,36035,34515,42355,38355,110080,26745,35315,40365,30655], [26, 1]);
// Train the model using the data.
await model.fit(xs, ys, {epochs: 500});
// Use the model to do inference on a data point the model hasn't seen.
model.predict(tf.tensor(arr, [1, 2])).print();
}
myFirstTfjs([28,5]);
正在发生的事情是ys
中的大值导致非常大的错误。 这个大错误与(默认)学习率相结合,导致模型过度校正并且不稳定。 如果降低学习率,模型将收敛。
const learningRate = 0.0001;
const optimizer = tf.train.sgd(learningRate);
model.compile({
loss: 'meanSquaredError',
optimizer: optimizer,
});
尝试将您的输出转换为更具可读性并更改您的优化器
var pred = model.predict(tf.tensor(arr, [1, 2]));
var readable_output = pred.dataSync();
console.log(readable_output);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.