目标:将 pytorch模型 转为 onnx模型 再转为 caffe2模型,得到两个.pb文件
pytorch转onnx可通过torch.onnx._export函数实现。
onnx转caffe2有两种方法:
第一种方法:使用命令行
参考:https://github.com/onnx/tutorials/blob/master/tutorials/OnnxCaffe2Import.ipynb
截图如下:
使用命令行的方式将onnx转为caffe2模型
第二种方法:写文件
参考:https://my.oschina.net/u/1431433/blog/2878668
截图如下:
写文件的方式将onnx转为caffe2
以及:https://pytorch.org/tutorials/advanced/super_resolution_with_caffe2.html
截图如下:
写文件的方式将onnx转为caffe2
本人在操作过程中,无论是第一种方法还是第二种方法,都会报错:
ValueError: Don't know how to translate op Unsqueeze
截图如下:
命令行转换时报错
以及:
写文件转换时报错
终于在网上找到一个解决方法,并且有几个人点赞,遂决定一试。
参考:https://github.com/onnx/onnx/issues/1481
截图如下:(修改onnx_caffe2/backend.py文件,添加两行即可)
网上的解决方法
这个💖是本人经验证可行之后点的,靠谱的帖子一定要顶起来,这样才能帮助更多的人。
本人使用conda安装的相关依赖库,对应的文件完整路径为:
/home/username/anaconda3/lib/python3.7/site-packages/onnx_caffe2/backend.py
只需添加上述的两行,再次运行时就可以通过了。
修改之后:
命令行转换不再报错
以及:
写文件转换不再报错
样例代码:(从pytorch模型转换为caffe2模型)
样例代码
获取更多信息,请关注微信公众号:












网友评论