← 开源
longcw

pytorch2caffe

Convert PyTorch model to Caffemodel

InfrastructureModel optimizationPython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
538
Star
147
Fork
+0
本周
1
贡献者
创建于 2017-08-28 · 更新于 2026-05-26 · 今日第 17068 名
主要开发者
README

PyTorch2Caffe

Require Pytorch < 0.4

Ported from pytorch-caffe-darknet-convert.

Add support for

  • Dilated Convolution Layer
  • Concat Layer
  • Upsampling (converted to Deconvolution with bilinear initialization)
  • Eltwise Product
  • Sigmoid Layer
# We can obtain almost the same output from caffe except Upsampling
# for inception_v3: 
# diff between pytorch and caffe: min: 0.0, max: 1.76429748535e-05, mean: 2.14079022953e-06
# see more in demo.py

import torch
from torch.autograd import Variable
import torchvision

import os
from pytorch2caffe import pytorch2caffe, plot_graph

m = torchvision.models.inception_v3(pretrained=True, transform_input=False)
m.eval()
print(m)

input_var = Variable(torch.rand(1, 3, 299, 299))
output_var = m(input_var)

output_dir = 'demo'
# plot graph to png
plot_graph(output_var, os.path.join(output_dir, 'inception_v3.dot'))

pytorch2caffe(input_var, output_var, 
              os.path.join(output_dir, 'inception_v3-pytorch2caffe.prototxt'),
              os.path.join(output_dir, 'inception_v3-pytorch2caffe.caffemodel'))