This question already has answers here:
Using async requires async function, but my function is async
(4个答案)
去年关闭。
我正在关注Tensorflow.js示例
但由于某些原因,浏览器抱怨
错误信息:
未捕获的SyntaxError:等待仅在异步函数中有效
我运行的示例代码:
我已验证model.fit返回
我已经在Safari和Chrome上试用过。
我可以使用.then解决这个问题,但如果可以的话,我想使用await。
有人知道为什么吗?
它创建一个匿名的异步箭头函数,该函数在创建时会自行调用。
或者,如果您不需要整个过程都是异步的,则可以对异步函数使用“较旧的”方法,方法是使用
(4个答案)
去年关闭。
我正在关注Tensorflow.js示例
但由于某些原因,浏览器抱怨
await
前面带有model.fit
关键字。错误信息:
未捕获的SyntaxError:等待仅在异步函数中有效
我运行的示例代码:
const model = tf.sequential({
layers: [tf.layers.dense({units: 1, inputShape: [10]})]
});
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
for (let i = 1; i < 5 ; ++i) {
const h = await model.fit(tf.ones([8, 10]), tf.ones([8, 1]), {
batchSize: 4,
epochs: 3
});
console.log("Loss after Epoch " + i + " : " + h.history.loss[0]);
}
我已验证model.fit返回
Promise
我已经在Safari和Chrome上试用过。
我可以使用.then解决这个问题,但如果可以的话,我想使用await。
有人知道为什么吗?
最佳答案
await
关键字仅在异步函数中可用,因此您必须将其包装为一个。
保持范围的最简单方法是:
(async () => {
yourStuffHere
})();
它创建一个匿名的异步箭头函数,该函数在创建时会自行调用。
或者,如果您不需要整个过程都是异步的,则可以对异步函数使用“较旧的”方法,方法是使用
.then()
在异步函数完成后运行给定的回调函数:model.fit(...).then(h => {
console.log("Loss after Epoch " + i + " : " + h.history.loss[0]);
});
关于javascript - 等待Tensorflow.js的model.fit不工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50704818/
10-16 13:30