我正在使用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);
...
1条答案
按热度按时间hec6srdp1#
看起来您不能直接引用二进制文件,您总是需要引用节点模块目录。
最后,我只是将onnxruntime-node模块和二进制文件沿着复制到打包的应用程序资源目录中,这是可行的。