ONNXRuntimeError Concat类型不匹配

onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : Load model from /data_dir/project/e2eonnx/onnx/five_actions/tad.onnx failed:Type Error: Type parameter (T) of Optype (Concat) bound to different types (tensor(int64) and tensor(float) in node (Concat_5090).

解决思路:

首先使用了工具:Netron

发现输出当中,混了一个int64

然后再看日志

roi确实是int64啊

然后在代码中打印

但是打印出来的是float啊,怎么会突然变成了Long(int64)???

 为了进一步验证,我单独输出roi,发现roi还是自动变成了int64

所以我猜测是这个里面的某个操作,变成了long,导致roi也变成了long

排bug的方式是逐行return

最后定位到最后面那个cat有错误

但是呢,在正常的训练或测试中,rois_abs是float类型,但是到了onnx中就是long类型

因为batch_ind是long类型。在正常训练测试中,rois_abs会自动转型,但是onnx不行。

所以要将batch_ind变成float类型。

 

 bug解决

体会:一定要定位出哪里问题才能解决bug

最后来对比一下,上面是训练代码,下面则是能转onnx的代码,能训练未必能转onnx

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无情的阅读机器

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值