主要环境要求:
python >= 3.8 pytorch = 1.7.0 onnx = 1.10.1 onnx-tf = 1.9.0
此处以转yolov5s.pt模型为例,转换成onnx模型命令如下:
python models/export.py --weights yolov5s.pt --img 640 --batch 1
若为自己训练的数据集模型为例,命令可参考如下:
python models/export.py --weights runs/train/exp/weights/best.pt --img 640 --batch 1
但是第一次转换没能成功,报错如下:
importError: /usr/lib/x86_64-linux-gnu/libstdtt.so.6: version ‘GLIBDKX_3.4.22' not found (requined by /hone/xinxiB11/anaconda3/envs/yolov5/lib/python3.6/site-packages/scipy/fft/_pocketfft/pypocketfft.cpython-361-x86_64-linux-gnu.so)
根据搜索可知,为默认路径下libstdc++.so.6缺少GLIBCXX_3.4.22,
先使用指令查看当下有哪些版本:
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
结果为:
使用 sudo find / -name "libstdc++.so.6*" 查看当下系统中其他同类文件,找到一个版本较高的:
我的结果如下:
选择版本较高的一个,使用刚才的命令看看是否包含需要的版本。
strings /hone/xinxi311/anaconda3/envs/yolov5/lib/libstdct+.so0.6.0.28 | grep GLIBCXX
运行后的结果为:
找到所需版本后就是建立软连接,
先复制指定目录:
cp /hone/xinxi311/anaconda3/envs/yolov5/lib/libstdct+.so0.6.0.28 /usr/lib/x86_64-linux-gnu/
如提示权限不够,加sudo。
删除之前链接:
sudo rm /usr/lib/x86__64-linux-gnu/libstdc++.so.6
创建新链接:
sudo ln -s /hone/xinxi311/anaconda3/envs/yolov5/lib/libstdc.+. so.6.0.28 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
这之后再运行模型转换命令便可成功,成功结果如下:
结束!



