当我这样加载保存的模型时(请不要介意预测函数没有输入的事实)
const tf = require('@tensorflow/tfjs');
require('@tensorflow/tfjs-node');
const model = tf.loadModel('file://./model-1a/model.json').then(() => {
model.predict();
});
我收到此错误:
(节点:25887)UnhandledPromiseRejectionWarning:TypeError: model.predict不是函数 在tf.loadModel.then(/home/ubuntu/workspace/server.js:10:9)
但是当我只创建一个模型而不是加载它时,效果很好
const model = tf.sequential();
model.add(tf.layers.dense({units: 10, inputShape: [10005]}));
model.add(tf.layers.dense({units: 1, activation: 'linear'}));
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
模型预测功能可以正常工作吗?我不知道这里可能出什么问题,我希望有人可以帮助我。
答案 0 :(得分:2)
您需要使用promises。
loadModel()
返回解析为已加载模型的Promise。因此,要访问它,您需要使用.then()
表示法,或者位于async
函数中并await
。
.then()
:
tf.loadModel('file://./model-1a/model.json').then(model => {
model.predict();
});
async/await
:
async function processModel(){
const model = await tf.loadModel('file://./model-1a/model.json');
model.predict();
}
processModel();
或更简单,更直接的方式:
(async ()=>{
const model = await tf.loadModel('file://./model-1a/model.json');
model.predict();
})()