pytorch转caffe2 之 onnx转caffe2报错的解决方法

Posted code4fun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytorch转caffe2 之 onnx转caffe2报错的解决方法相关的知识,希望对你有一定的参考价值。

目标:将 pytorch模型 转为 onnx模型 再转为 caffe2模型,得到两个.pb文件

pytorch转onnx可通过torch.onnx._export函数实现。

onnx转caffe2有两种方法:

第一种方法:使用命令行

考: https://github.com/onnx/tutorials/blob/master/tutorials/OnnxCaffe2Import.ipynb

截图如下:


第二种方法:写文件

参考:https://my.oschina.net/u/1431433/blog/2878668

截图如下:

pytorch转caffe2 之 onnx转caffe2报错的解决方法

以及:https://pytorch.org/tutorials/advanced/super_resolution_with_caffe2.html

截图如下:

pytorch转caffe2 之 onnx转caffe2报错的解决方法

本人在操作过程中,无论是第一种方法还是第二种方法,都会报错:

ValueError: Don't know how to translate op Unsqueeze

截图如下:

pytorch转caffe2 之 onnx转caffe2报错的解决方法

以及:

pytorch转caffe2 之 onnx转caffe2报错的解决方法


终于在网上找到一个解决方法,并且有几个人点赞,遂决定一试。

参考:https://github.com/onnx/onnx/issues/1481

截图如下:(修改onnx_caffe2/backend.py文件,添加两行即可)

pytorch转caffe2 之 onnx转caffe2报错的解决方法

这个

以上是关于pytorch转caffe2 之 onnx转caffe2报错的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

PyTorch 1.0 中文官方教程:使用ONNX将模型从PyTorch传输到Caffe2和移动端

开发 | 新版PyTorch发布在即,融合Caffe2ONNX

融合 Caffe2ONNX 的新版 PyTorch 发布在即,能否赶超 TensorFlow?

模型转换 PyTorch转ONNX 入门

Pytorch模型(.pth)转onnx模型(.onnx)

Pytorch的pth模型转onnx,再用ONNX Runtime调用推理(附python代码)