TFJS 节点模型未正确加载,无可用功能

TFJS Node Model Not Loading Correctly, No Functions Available

我正在尝试使用 Node 将 Keras 模型导入 Tensorflow.JS 并且没有发生明显的错误但是,当我尝试使用我导入的模型时,它没有可用的功能所以它显然没有正确加载。我选择使用 Express 来托管静态 HTTP 文件服务器,并且我正在托管 model.json 以及 20 个二进制分片文件。

我想如果读取这个模型有问题,就会有一个明显的错误(因为我以前遇到过这个问题,不得不修改我的 Express 代码来修复它...)

本地型号:

静态 HTTP 服务器:

file_server.use(express.static(__dirname + '/model')); // Where the model resides

正在加载模型:

var tf = require('@tensorflow/tfjs-node');
const model = tf.loadLayersModel('http://127.0.0.1:3001/model.json');
console.log(typeof(model)); // Returns 'object'

var predictions = model.predict(image_tensor).data(); 
// TypeError: model.predict is not a function

我已经尝试在异步函数中加载模型,使用 await 并尝试异步预测,但问题仍然存在。

如果需要任何更多信息,请告诉我,我对 Node 和 Web 开发总体上还很陌生,所以请原谅任何明显的疏忽!

再次感谢,乔希

经过一番摸索,我发现这不是模型加载的问题,而是模型处于块范围内的问题。将 const 更改为 var 似乎可以解决此问题。我不知道为什么只有功能不可用,但是这段代码似乎可以解决它:

var tf = require('@tensorflow/tfjs-node');
var model = "";

exports.loadModel = async function() {
    model = await tf.loadLayersModel('http://127.0.0.1:3001/model.json');
}