【问题标题】:TFJS Node Model Not Loading Correctly, No Functions AvailableTFJS 节点模型未正确加载,无可用功能
【发布时间】:2019-10-14 00:45:51
【问题描述】:

我正在尝试使用 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 开发非常陌生,所以请原谅任何明显的疏忽!

再次感谢乔希

【问题讨论】:

  • console.log(model) 的输出是什么。它应该向您显示所有相关的功能和属性。
  • 感谢您的快速回复。在将代码修改为异步后,我使用了该语句并得到了一个巨大的 3000 行输出 (pastebin.com/raw/jtRM78HD),其中包含模型及其层的许多属性,但没有提及预测函数或任何其他应该的函数存在,例如 model.summary()。

标签: node.js tensorflow tensorflow.js


【解决方案1】:

经过一番折腾,我发现这不是加载到模型中的问题,而是模型在块范围内的问题。将 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');
}

【讨论】:

    猜你喜欢
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    相关资源
    最近更新 更多