在 Node-RED 中使用 onnxruntime-node 时出现问题:“TypeError:onnx.OnnxTensor 不是构造函数”

问题描述 投票:0回答:1

我正在开发一个 Node-RED 项目,我尝试使用 onnxruntime-node 库来运行 ONNX 模型。目标是处理从 BigQuery 节点检索的数据并将其用作模型 model.run() 函数的输入。但是,我遇到以下错误:

TypeError: onnx.OnnxTensor is not a constructor

我已经保证:

  • onnxruntime-node 库已安装。
  • Node-RED settings.js 文件中的 functionExternalModules 选项设置为 true。
  • 我通过在 Node-RED settings.js 文件中的“functionGlobalContext”函数下添加“onnxModule:require('onnxruntime-node')”来设置全局上下文,因为我无法在函数节点中使用 require()。

这是我在 Node-RED 的 Function 节点中使用的代码的简化版本:

const onnx = global.get('onnx');
const model = new onnx.InferenceSession('Z:\\path\\to\\my\\model.onnx');

// Retrieve data from BigQuery output
const dataFromBigQuery = msg.payload;

// Format the data to match ONNX input requirements
const formattedData = dataFromBigQuery.map(reading => [reading]); // Assuming you're converting each reading to an array

// Create Tensor object for input data
const inputData = new onnx.Tensor('float32', formattedData, [formattedData.length, formattedData[0].length]);

// Run the model
const outputData = model.run({ input_node_name: inputData });

// Process output data
msg.payload = outputData;

return msg;

这是我部署流程后出现的流程和调试消息的屏幕截图:

我认为错误发生在第11行,对应于以下行:

const inputData = new onnx.Tensor('float32', formattedData, [formattedData.length, formattedData[0].length]);
javascript node.js machine-learning node-red
1个回答
0
投票

图书馆的名字是什么?

© www.soinside.com 2019 - 2024. All rights reserved.