0%

onnx 转 caffe2

2019年8月23日 下午2:40

环境依赖:

  1. caffe2
    1. pip install torch_nightly -f https://download.pytorch.org/whl/nightly/cpu/torch_nightly.html
  2. Onnx
    1. conda install -c conda-forge onnx

代码:

tutorials/OnnxCaffe2Import.ipynb at master · onnx/tutorials · GitHub

第一步:

1
2
3
4
5
6
7
8
9
10
11
import onnx
import caffe2.python.onnx.backend

# Prepare the inputs, here we use numpy to generate some random inputs for demo purpose/
import numpy as np
img = np.random.randn(1, 3, 224, 224).astype(np.float32)

# Load the ONNX model/
model = onnx.load('assets/squeezenet.onnx')
# Run the ONNX model with Caffe2/
outputs = caffe2.python.onnx.backend.run_model(model, [img])

第二步:

1
convert-onnx-to-caffe2 assets/squeezenet.onnx —output predict_net.pb —init-net-output init_net.pb

参考:

利用TensorRT实现神经网络提速(读取ONNX模型并运行) - Oldpan的个人博客
陈程:MMdnn如何让模型在不同深度学习框架间转换?
关于一些知名深度学习模型的转换 - chengjue - 博客园
pytorch转caffe2 之 onnx转caffe2报错的解决方法 ValueError: Don’t know how to translate op Unsqueeze - 神评网
torch.onnx.export使用方法详解以及pytorch和caffe2/MXNet/Tensorflow/CoreML/CNTK模型之间的相互转化 - pytorch中文网
Install | Caffe2