pt模型转化为rknn的常见问题整理

首先说明本次转换模型最终采用训练模型torch版本1.8.0+cu111、Python3.7.13;
转换采用的rknntoolkit版本为1.7.1、torch版本为1.6、Python3.6;
本次待转换模型为自训练的yolov5s模型,整个转换过程分两步:
pt模型转化为onnx,然后将onnx通过rknntoolkit转化为rknn模型;
可能遇到问题如下:
1、版本问题,yolov5转化代码export.py中这句话,解决了版本兼容的问题,但是pt模型只有在torch1.8.0版本和1.9.0版本下才能转化成功(but 1.9.0我没有试过,毕竟版本差距太大)。

m._non_persistent_buffers_set = set()  # pytorch 1.6.0 compatability

2、rknn中不支持pytorch+GPU因此需要转化成CPU模型(本次采用rknntoolkit不支持GPU,如有GPU模型转换成功,还请多指教)
在这里插入图片描述
3、若出现错误
在这里插入图片描述
需将源代码:session = onnxruntime.InferenceSession(w, None)
改为:session = onnxruntime.InferenceSession(w,providers=['TensorrtExecutionProvider','CUDAExecutionProvider', 'CPUExecutionProvider'])
4、numpy版本问题
在这里插入图片描述
解决:
numpy版本太高:改成1.16.3版本

pip install --upgrade numpy==1.16.3

5、在pt转onnx时,出现onnxruntime与CUDA版本不匹配问题
在这里插入图片描述
请参照官网的版本对应关系下载安装onnxruntime。
6、如果采用pt直接转化为rknn模型,出现下面错误:
在这里插入图片描述
这是rknntoolkit1.7.1版本的bug,更新下一个版本就可以了(并不知道下一个版本是否更新);所以还需将pt转化为onnx再转化为rknn更稳妥。

最后,转换模型测试一下,输出结果:
在这里插入图片描述
解决错误,也是进步的一种~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值