onnxruntime-node in packaged electron app

sd2nnvve  于 2023-05-17  发布在  Node.js
关注(0)|答案(1)|浏览(261)

我正在使用onnxruntime-node包在我的electron应用程序中进行推理。我通过'yarn add'安装了npm包,一切都像开发中预期的那样工作。
当我打包electron应用程序时,node无法找到onnxruntime-node导入。
为了解决这个问题,我要求使用预构建的onnx运行时二进制文件。

const ort = require(path.join(`electron-app-dir\\node_modules\\onnxruntime-node\\bin\\napi-v3\\win32\\x64`,'onnxruntime_binding.node'));

这部分解决了问题,因为node能够找到预构建二进制文件,但我最终得到了一个不同的错误:
'TypeError: ort.InferenceSession.create is not a function'
我不知道该不该继续下去。在保存目录中有一些. dll作为onnxruntime_binding.node文件。这些也需要吗?
任何帮助弄清楚这一点是赞赏!
供参考:

const ort = require(path.join(`electron-app-dir\\node_modules\\onnxruntime-node\\bin\\napi-v3\\win32\\x64`,'onnxruntime_binding.node'));

const modelPath =  path.join(__dirname,'model.onnx')

const session = await ort.InferenceSession.create(modelPath);

...
hec6srdp

hec6srdp1#

看起来您不能直接引用二进制文件,您总是需要引用节点模块目录。
最后,我只是将onnxruntime-node模块和二进制文件沿着复制到打包的应用程序资源目录中,这是可行的。

相关问题