模型开发遇到错误 新评论 Daying Cao 2025.07.24 17:02 版主你好 ,各位高手你们好! 运行模型EA 报错2025.07.25 00:17:40.330 ONNX EA(BTCUSD,H1) ONNX: incorrect parameters count passed to OnnxRun, expected 3 instead of 2, inspect code '4þ)ýgA5ê¿E' (854:10) 含义:OnnxRun期望 3个 参数 ,而不是 2个,实际OnnxRun调用符合MQL5文档规范 编译正常通过,但运行时出现以上错误! 求大神解决这一问题! 相关代码: float output_onnx_probabilities[2]; // 用于接收 ONNX 模型的 float 概率数组输出 // 获取输入信息 long input_count = OnnxGetInputCount(game_classifier_handle); Print(" Input Count: ", (string)input_count); for(long i = 0; i < input_count; i++) { string input_name = OnnxGetInputName(game_classifier_handle, i); OnnxTypeInfo type_info; if(OnnxGetInputTypeInfo(game_classifier_handle, i, type_info)) { string dims = BuildDimensionString(type_info.tensor.dimensions); string type_str = OnnxTypeToString(type_info.type); Print(" Input ", (string)i, ": Name=", input_name, ", Type=", type_str, ", Dimensions=[", dims, "]"); } } long output_count = OnnxGetOutputCount(game_classifier_handle); Print(" Output Count: "+output_count); for(long i = 0; i < output_count; i++) { string output_name = OnnxGetOutputName(game_classifier_handle, i); OnnxTypeInfo type_info; if(OnnxGetOutputTypeInfo(game_classifier_handle, i, type_info)) { string dims = ""; for(int d = 0; d < type_info.tensor.dimensions.Size(); d++) {/* dims += (d > 0 ? "x" : "") + (type_info.tensor.dimensions[d] == -1 ? "?" : (string)type_info.tensor.dimensions[d]); */ if(d > 0) dims += "x"; if(type_info.tensor.dimensions[d] == -1) { // 动态维度 dims += "?"; } else { dims += (string)type_info.tensor.dimensions[d]; } } Print(" Output ", i, ": Name=", output_name, ", Type=", EnumToString(type_info.type), ", Dimensions=[", dims, "]"); } } ulong flag = (ONNX_DEBUG_LOGS | ONNX_NO_CONVERSION); if (!OnnxRun( game_classifier_handle, // ONNX 会话句柄 flag, input_onnx , // 输入数组 output_onnx_probabilities )) // 概率输出数组 { DebugPrint("❌ ERROR: Game Classifier ONNX prediction failed. Error: " + (string)GetLastError()); return -1; } 如何在 MQL5 中使用 ONNX 模型 掌握ONNX:MQL5交易者的游戏规则改变者 Writing and reading variables (binary files) 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
版主你好 ,各位高手你们好!
运行模型EA 报错2025.07.25 00:17:40.330 ONNX EA(BTCUSD,H1) ONNX: incorrect parameters count passed to OnnxRun, expected 3 instead of 2, inspect code '4þ)ýgA5ê¿E' (854:10)
含义:OnnxRun期望 3个 参数 ,而不是 2个,实际OnnxRun调用符合MQL5文档规范
编译正常通过,但运行时出现以上错误!
求大神解决这一问题!
相关代码:
// 获取输入信息
long input_count = OnnxGetInputCount(game_classifier_handle);
Print(" Input Count: ", (string)input_count);
for(long i = 0; i < input_count; i++)
{
string input_name = OnnxGetInputName(game_classifier_handle, i);
OnnxTypeInfo type_info;
if(OnnxGetInputTypeInfo(game_classifier_handle, i, type_info))
{
string dims = BuildDimensionString(type_info.tensor.dimensions);
string type_str = OnnxTypeToString(type_info.type);
Print(" Input ", (string)i, ": Name=", input_name,
", Type=", type_str,
", Dimensions=[", dims, "]");
}
}
long output_count = OnnxGetOutputCount(game_classifier_handle);
Print(" Output Count: "+output_count);
for(long i = 0; i < output_count; i++)
{
string output_name = OnnxGetOutputName(game_classifier_handle, i);
OnnxTypeInfo type_info;
if(OnnxGetOutputTypeInfo(game_classifier_handle, i, type_info))
{
string dims = "";
for(int d = 0; d < type_info.tensor.dimensions.Size(); d++)
{/*
dims += (d > 0 ? "x" : "") +
(type_info.tensor.dimensions[d] == -1 ?
"?" : (string)type_info.tensor.dimensions[d]);
*/
if(d > 0) dims += "x";
if(type_info.tensor.dimensions[d] == -1) { // 动态维度
dims += "?";
} else {
dims += (string)type_info.tensor.dimensions[d];
}
}
Print(" Output ", i, ": Name=", output_name,
", Type=", EnumToString(type_info.type),
", Dimensions=[", dims, "]");
}
}
ulong flag = (ONNX_DEBUG_LOGS | ONNX_NO_CONVERSION);
if (!OnnxRun( game_classifier_handle, // ONNX 会话句柄
flag,
input_onnx , // 输入数组
output_onnx_probabilities )) // 概率输出数组
{
DebugPrint("❌ ERROR: Game Classifier ONNX prediction failed. Error: " + (string)GetLastError());
return -1;
}