Sch*_*tsl 1 javascript tensorflow.js
当我加载这样的保存模型时(请不要介意预测函数没有输入)
const tf = require('@tensorflow/tfjs');
require('@tensorflow/tfjs-node');
const model = tf.loadModel('file://./model-1a/model.json').then(() => {
model.predict();
});
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
(节点: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'});
Run Code Online (Sandbox Code Playgroud)
模型预测功能工作正常吗?我不知道这里出了什么问题,我希望有人能帮助我。
你需要信守诺言。
loadModel()返回解析为加载模型的承诺。因此,要访问它,您要么需要使用.then()符号,要么位于async函数及其内部await。
.then():
tf.loadModel('file://./model-1a/model.json').then(model => {
model.predict();
});
Run Code Online (Sandbox Code Playgroud)
async/await:
async function processModel(){
const model = await tf.loadModel('file://./model-1a/model.json');
model.predict();
}
processModel();
Run Code Online (Sandbox Code Playgroud)
或者用更短、更直接的方式:
(async ()=>{
const model = await tf.loadModel('file://./model-1a/model.json');
model.predict();
})()
Run Code Online (Sandbox Code Playgroud)