张量流 | 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
关键字。
使用以下 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
关键字。