张量流 | tf.loadLayersModel 不工作

TensorFlowJs | tf.loadLayersModel Not Working

使用以下 link 中的示例代码: https://js.tensorflow.org/api/latest/#loadLayersModel

正在检查 Chrome 的本地存储,我确实在那里看到了 'my-model-1',所以它被保存但没有加载回 loadedModel。我已经在 Chrome 和 IE 中验证了 localstorage,并且在两个浏览器中都存在 'my-model-1'。 IE 不会抛出错误,而 Chrome 会抛出错误。

const model = tf.sequential({layers: [tf.layers.dense({units: 1, inputShape: [3]})]});
model.predict(tf.ones([1, 3])).print();
const saveResults = model.save('localstorage://my-model-1');
const loadedModel = tf.loadLayersModel('localstorage://my-model-1');
loadedModel.predict(tf.ones([1, 3])).print();

预期 loadedModel.predict 工作,但得到 loadedModel.predict 不是函数错误。

问题

tf.loadLayersModel returns a Promise 解析为模型。 model.save.

也是如此

解决方案

您需要使用 await or .then 等待 Promise 解决。这是带有正确 await 语句的代码:

(async () => {
  const model = tf.sequential({layers: [tf.layers.dense({units: 1, inputShape: [3]})]});
  model.predict(tf.ones([1, 3])).print();
  const saveResults = await model.save('localstorage://my-model-1');
  const loadedModel = await tf.loadLayersModel('localstorage://my-model-1');
  loadedModel.predict(tf.ones([1, 3])).print();
})();

代码在 async 函数中执行,因为只有在这里才允许使用 await 关键字。