我使用tensorflow js进入机器学习的世界主要是为了尝试获得一些图表的预测数据,我已经做了一个基本顺序模型的例子来预测时间表,它似乎工作得很好,但是可能天真地认为你可以将相同的基本模型应用到一组日期。
比如说
const model = tf.sequential()
model.add(tf.layers.dense({ units: 1, inputShape: [1] }))
model.compile({ loss: 'meanSquaredError', optimizer: tf.train.sgd(0.0001) })
// Convert date strings to time as it doesn't like strings
const inputs = ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05'].map(x => parseISO(x).getTime())
// Values for each date
const outputs = [2, 4, 5, 8, 10]
const xs = tf.tensor2d(inputs, [inputs.length, 1])
const ys = tf.tensor2d(outputs, [outputs.length, 1])
await model.fit(xs, ys, { epochs: 200 })
// Try make a single prediction for the next day
const predictions = [
parseISO('2023-01-06').getTime(),
]
model.predict(tf.tensor2d(predictions, [predictions.length, 1])).toString()
然而,上面只是给出了[[NaN],]
有什么我错过了这里,可能是一个非常明显的基本错误,如可能使用纪元是问题?因为切换日期回到简单的数字1,2,3,4,5和预测6给出[[8.9031172],]
,虽然不准确,但可能是一个预期的答案,即使它应该猜测一个累积值。
只是想找出我在这里出错的地方,任何指针赞赏!
最终目标是尝试预测未来日期的累积值。
1条答案
按热度按时间kmynzznz1#
我建议使用tf字符串函数来把你的日期转换成正确的数据类型,这样它们就可以在计算图中编码。如果你创建了一个端到端的可复制代码块,我可以试着帮助你。