You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用rl-agents与Godot开发AI导出.onnx文件时遇ORT Provider错误

解决ONNX导出时的ONNX Runtime Provider参数问题

1. 全局检查并修正InferenceSession调用

你需要确保所有调用onnxruntime.InferenceSession()的代码都添加了providers参数,不要遗漏任何一处:

  • 打开stable_baselines3.py、stable_baselines_export.py、onnxruntime_inference_collection.py,搜索InferenceSession关键词
  • 给每个调用加上providers=['CPUExecutionProvider']参数(优先用CPU provider,避免Azure相关依赖问题),示例代码:
session = onnxruntime.InferenceSession(
    "target_model.onnx",
    providers=['CPUExecutionProvider']
)

2. 对齐ONNX Runtime与Stable Baselines 3版本

版本不兼容是常见诱因:

  • 卸载当前onnxruntime,安装与SB3匹配的版本(SB3 1.x系列推荐onnxruntime 1.12.1):
pip uninstall onnxruntime -y
pip install onnxruntime==1.12.1

3. 重新导出并验证ONNX文件

导出流程错误会导致文件损坏,按以下步骤重新导出:

  1. 使用SB3内置导出方法,确保输入形状与你的环境观测空间匹配:
from stable_baselines3 import PPO
from stable_baselines3.common.onnx_export import export_onnx_model

# 加载训练好的模型
model = PPO.load("your_trained_agent")
# 输入形状需和环境观测空间一致,比如观测是4维向量就用(1,4)
export_onnx_model(model, "fixed_model.onnx", input_shape=(1, 4))
  1. 用ONNX Runtime工具验证文件完整性:
python -m onnxruntime.tools.validate_onnx_model fixed_model.onnx

如果验证通过,说明文件本身无问题。

4. 排查Godot端加载配置

若文件验证正常但Godot中无法使用:

  • 确认Godot使用的ONNX Runtime插件版本和你导出时用的onnxruntime版本一致
  • 在Godot加载模型时,同样指定CPU执行provider,避免因provider不匹配报错

内容的提问来源于stack exchange,提问作者Pedro Ramos Pereira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 16:33:32