【发布时间】:2018-04-20 02:27:20
【问题描述】:
我正在尝试使用基于 Keras 的 Layers API 使用 Tensorflow.js 训练一个 lstm 模型。我无法恢复正确的预测。我试图为模型提供一系列 NBA 球员每个赛季的职业生涯得分(例如:[20、30、40、55、60、55、33、23])。我想为它提供一系列以下赛季的生产得分为 y 的球员。
var data = tf.tensor([
[[100], [86], [105], [122], [118], [96], [107], [118], [100], [85]],
[[30], [53], [74], [85], [96], [87], [98], [99], [110], [101]],
[[30], [53], [74], [85], [96], [87], [98], [99], [110], [101]],
[[30], [53], [74], [85], [96], [87], [98], [99], [110], [101]],
[[30], [53], [74], [85], [96], [87], [98], [99], [110], [101]],
[[30], [53], [74], [85], [96], [87], [98], [99], [110], [101]],
[[30], [53], [74], [85], [96], [87], [98], [99], [110], [101]],
[[30], [53], [74], [85], [96], [87], [98], [99], [110], [101]]
]);
var y = tf.tensor([[100], [90], [90], [90], [90], [90], [90], [90]]);
const model = tf.sequential();
model.add(
tf.layers.lstm({
units: 1,
inputShape: [10, 1]
})
);
model.compile({ loss: "meanSquaredError", optimizer: "adam" });
model.fit(data, y, { epochs: 1000 }).then(() => {
// Use the model to do inference on a data point the model hasnt
// seen before:
model
.predict(
tf.tensor([
[[30], [53], [74], [85], [96], [87], [98], [99], [110], [101]]
])
)
.print();
});
它预测的是这样的:[[0],]
当我期待这样的事情时:[[90]]
【问题讨论】:
-
嗨,迈克,你有没有让它正常运行?我正在尝试做类似的事情。我用你的代码尝试了一些东西,得到了不同的结果。尝试通过模型拟合的等待添加到异步函数。它有时会起作用。我得到一个张量 [[0.7587256],] 响应。
-
这听起来很荒谬......但是当我在培训期间将焦点从浏览器更改为代码编辑器时,它似乎起作用了。这是结果的捕获> ibb.co/jRY0JJ
标签: machine-learning keras lstm rnn tensorflow.js