如何在保存在Node.js上的浏览器中使用tensorflow.js加载模型和权重?

ike*_*tuz 2 neural-network tensorflow tensorflow.js

来源:保存/加载模型文档

我在 NodeJS 端训练了多个模型,并将它们保存为使用“file://”

所以我有 1 个 JSON 文件和 1 个带有权重的二进制文件

但要在浏览器端加载此模型,我只能使用 localStorage、indexedDB 和 HTTP 请求。

加载它们的正确方法是什么?

在将模型放在那里之前,我不能只从 localStorage 加载。也许我可以以某种方式将我的两个文件转换为类似 JSON 的格式并将其放入 localStorage 中?

浏览器重新启动后,IndexedDB 正在被清理。不确定我是否可以使用它。

Http 看起来不错,但是如何使用加载权重?

await tf.loadModel('http://model-server.domain/download/model.json')
Run Code Online (Sandbox Code Playgroud)

它只是一个文件请求。

有任何想法吗?

小智 5

权重文件会使用与模型文件相同的路径自动加载。在您的示例中,模型文件的 url 如下: http://model-server.domain/download/model.json

加载器将从以下网址加载权重文件: http://model-server.domain/download/group1-shard1of1

只要将权重文件存储在服务器上与 model.json 文件相同的目录中,它就应该可以工作。

  • 的确。尝试使用nodeJS/express 提供目录服务。const loadModel =等待 tf.loadModel(`http://localhost:8085/${modelName}/model.json`); 它奏效了。但是有没有一种方法可以在离线机器上完成而不运行服务器(如节点)?我可以将 chrome 与任何安全标志一起使用(例如 --allow-file-access-from-files)。 (2认同)