Javascript 无法通过在tensorflow.js中加载预先训练的模型(loadLayersModel)进行预测
我已培训并生成了中所述的文件 但当我预测时,它不起作用Javascript 无法通过在tensorflow.js中加载预先训练的模型(loadLayersModel)进行预测,javascript,tensorflow,tensorflow.js,Javascript,Tensorflow,Tensorflow.js,我已培训并生成了中所述的文件 但当我预测时,它不起作用 尝试张量流 model.json 重量箱 试试看 函数myFunction(){ const uploadJSONInput=document.getElementById('upload-json'); const uploadWeightsInput=document.getElementById('upload-weights'); console.log('start'); tf张量([ [1, 2], [3, 4] ]).pr
尝试张量流
model.json
重量箱
试试看
函数myFunction(){
const uploadJSONInput=document.getElementById('upload-json');
const uploadWeightsInput=document.getElementById('upload-weights');
console.log('start');
tf张量([
[1, 2],
[3, 4]
]).print();//在此之前没有问题
const model=tf.loadLayersModel(tf.io.browserFiles(
[uploadJSONInput.files[0],uploadWeightsInput.files[0]]
)).然后(()=>{
log('will print now');
模型预测(tf.tensor2d([5],[1,1]).print();
});
log(model.predict(tf.tensor2d([5],[1,1])).print());
}
这里的问题是模型
变量在的作用域中是未知的。然后(()=>…)
函数。您需要返回模型来访问它,或者使用wait/async语法
请参阅以下使用wait/async语法加载模型并预测值的工作代码示例:
异步函数loadModel(){
const uploadJSONInput=document.getElementById('upload-json');
const uploadWeightsInput=document.getElementById('upload-weights');
const model=wait tf.loadLayersModel(tf.io.browserFiles(
[uploadJSONInput.files[0],uploadWeightsInput.files[0]]
));
模型预测(tf.tensor2d([5],[1,1]).print();
}
document.querySelector(“#myBtn”).addEventListener('click',loadModel)代码>
尝试张量流
model.json
重量箱
试试看
您好,谢谢。这绝对是一个提示。但为什么模型总是预测[[7.8631339],]的价值?我这里的意思是,它应该尝试预测接近的值,以适合模型y=2x-1(根据x和y数据)。现在2*5-1应该接近9,绝对不是7。8@ShariqAzim这是一个完全不同的问题;)我建议打开另一个关于该问题的问题,并将其标记为机器学习,因为这不是关于实现,而是关于模型。您还应该说明期望的值以及如何训练模型。希望对您有所帮助:)