Skip to content

About

Convert PyTorch model to Caffemodel

Resources

Stars

538 stars

Watchers

11 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

Repository files navigation

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'))

About

Convert PyTorch model to Caffemodel

Resources

Stars

538 stars

Watchers

11 watching

Forks

Releases

Packages

Used by

Contributors

Languages