【问题标题】:I can't load model from file:// with @tensorflow/tfjs我无法使用 @tensorflow/tfjs 从 file:// 加载模型
【发布时间】:2019-04-03 11:43:02
【问题描述】:

我正在构建一个 npm 包,用于加载预训练的 tensorflow 模型并进行一些预测。

当我用tf = require('@tensorflow/tfjs-node')tf.loadLayersModel() 时,我没有问题。不幸的是,该库在安装时似乎有问题。 我尝试改用tf = require('@tensorflow/tfjs)。虽然,我收到以下错误:

UnhandledPromiseRejectionWarning: E​​rror: browserHTTPRequest 在没有 fetch polyfill 的情况下不受 Web 浏览器外部支持。

这是我的代码:

 // Load ML model
  tf.loadLayersModel("file://" + __dirname + "mymodel/model.json").then(
    model => {
      }
    }
  );

有办法解决这个问题吗?

【问题讨论】:

标签: node.js tensorflow.js


【解决方案1】:

在使用 Node.js 时最好使用 @tensorflow/tfjs-node。 只是不需要@tensorflow/tfjs,一切都会按预期进行。

但如果你真的只想使用@tensorflow/tfjs,那么只需添加tfjs-node-save

npm install --save tfjs-node-save

并在你的脚本中使用它

require('tfjs-node-save');

【讨论】:

    【解决方案2】:

    UnhandledPromiseRejectionWarning: E​​rror: browserHTTPRequest 在没有 fetch polyfill 的情况下不受 Web 浏览器外部支持。

    如果您使用的是 @tensorflow/tfjs 而不是 @tensorflow/tfjs-node,则需要使用 polyfill 进行获取

    global.fetch = require('node-fetch');
    

    【讨论】:

    • 添加了这个,现在我得到这个错误:错误:对文件的请求://D:\Users\panos\Desktop\eslint-generator/mymodel/model.json 由于错误而失败:TypeError:仅支持 HTTP(S) 协议
    • 您必须使用本地服务器提供模型文件,因为您没有使用节点绑定。考虑这个答案:stackoverflow.com/questions/53639919/…
    猜你喜欢
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2022-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多