• Stars
    star
    3,244
  • Rank 13,837 (Top 0.3 %)
  • Language
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The convertor/conversion of deep learning models for different deep learning frameworks/softwares.

The project will be updated continuously ......  

Pull requests are welcome!

Deep Learning Model Convertors

Note: This is not one convertor for all frameworks, but a collection of different converters. Because github is an open source platform, I hope we can help each other here, gather everyone's strength.

Because of these different frameworks, the awesome convertors of deep learning models for different frameworks occur. It should be noted that I did not test all the converters, so I could not guarantee that each was available. But I also hope this convertor collection may help you!

The sheet below is a overview of all convertors in github (not only contain official provided and more are user-self implementations). I just make a little work to collect these convertors. Also, hope everyone can support this project to help more people who're also crazy because of various frameworks.

convertor mxnet caffe caffe2 CNTK theano/lasagne neon pytorch torch keras darknet tensorflow chainer coreML/iOS paddle ONNX
mxnet - MMdnn MXNet2Caffe Mxnet2Caffe MMdnn (through ONNX) MMdnn None None MMdnn gluon2pytorch None MMdnn None MMdnn None mxnet-to-coreml MMdnn None None
caffe mxnet/tools/caffe_converter ResNet_caffe2mxnet MMdnn - CaffeToCaffe2 MMdnn (through ONNX) crosstalkcaffe/CaffeConverter MMdnn caffe_theano_conversion caffe-model-convert caffe-to-theano caffe2neon MMdnn pytorch-caffe pytorch-resnet googlenet-caffe2torch mocha loadcaffe keras-caffe-converter caffe_weight_converter caffe2keras nn_tools keras caffe2keras Deep_Learning_Model_Converter MMdnn pytorch-caffe-darknet-convert MMdnn nn_tools caffe-tensorflow None CoreMLZoo apple/coremltools MMdnn X2Paddle caffe2onnx
caffe2 None None - ONNX None None ONNX None None None None None None None None
CNTK MMdnn MMdnn ONNX MMdnn (through ONNX) - None None ONNX MMdnn None MMdnn None MMdnn None MMdnn None None
theano/lasagne None None None None   -   None None None None None None None None None None
neon None None None None None - None None None None None None None None None
pytorch MMdnn brocolli PytorchToCaffe MMdnn pytorch2caffe pytorch-caffe-darknet-convert onnx-caffe2 MMdnn (through ONNX) ONNX MMdnn None None - None MMdnn pytorch2keras nn-transfer pytorch-caffe-darknet-convert MMdnn pytorch2keras (over Keras) pytorch-tf None MMdnn onnx-coreml None None
torch None fb-caffe-exts/torch2caffe mocha trans-torch th2caffe Torch2Caffe2 None None None convert_torch_to_pytorch - None None None None torch2coreml torch2ios None None
keras MMdnn keras-caffe-converter MMdnn nn_tools keras2caffe MMdnn (through ONNX) MMdnn None None MMdnn nn-transfer None - None nn_tools convert-to-tensorflow keras_to_tensorflow keras_to_tensorflow MMdnn None apple/coremltools model-converters keras_models MMdnn None None
darknet None pytorch-caffe-darknet-convert None MMdnn None None pytorch-caffe-darknet-convert None MMdnn   -   DW2TF darkflow lego_yolo None None None None
tensorflow MMdnn MMdnn nn_tools MMdnn (through ONNX) crosstalk MMdnn None None pytorch-tf MMdnn None model-converters nn_tools convert-to-tensorflow MMdnn None - None tfcoreml MMdnn X2Paddle None
chainer None None None None None None chainer2pytorch None None None None - None None None
coreML/iOS MMdnn MMdnn MMdnn (through ONNX) MMdnn None None MMdnn None MMdnn None MMdnn None - None
paddle None None None None None None None None None None None None None - None
ONNX None None None None None None onnx2torch onnx2torch None None None None None None X2Paddle -

Brief Intro of Convertors

Open Neural Network Exchange

General framework for converting between all kinds of neural networks

ONNX is an effort to unify converters for neural networks in order to bring some sanity to the NN world. Released by Facebook and Microsoft. More info here.

MMdnn

MMdnn is a set of tools to help users inter-operate among different deep learning frameworks. E.g. model conversion and visualization. Convert models between CaffeEmit, CNTK, CoreML, Keras, MXNet, ONNX, PyTorch and TensorFlow.

MXNet convertor

Convert to MXNet model.

mdering/CoreMLZoo: A few models converted from caffe to CoreMLs format

A few deep learning models converted from various formats to CoreMLs format. Models currently available:

  • SqueezeNet
  • VGG19 Please feel free to create a pull request with additional models.

mxnet/tools/caffe_converter

Key topics covered include the following:

nicklhy/ResNet_caffe2mxnet

This is a tool to convert the deep-residual-networks from caffe model to mxnet model. The weights are directly copied from caffe network blobs.

Caffe convertor

Convert to Caffe model.

keras-caffe-converter

It is a converter between Keras and Caffe in both ways. It works using only the Keras model to generate both the caffemodel and prototxt files, but it is also possible to pass it the prototxt file with the description of the model if you have it.

brocolli

Support 1.9.0 or higher Pytorch

pytorch2caffe

Convert PyTorch model to Caffemodel.

cypw/MXNet2Caffe

Convert MXNet model to Caffe model.

wranglerwong/Mxnet2Caffe: Convert MXNet model to Caffe model

Convert MXNet model to Caffe model.

kuangliu/mocha

Convert torch model to/from caffe model easily.

uhfband/keras2caffe: Keras to Caffe model converter tool

This tool tested with Caffe 1.0, Keras 2.1.2 and TensorFlow 1.4.0

Working conversion examples:

Problem layers:

  • ZeroPadding2D
  • MaxPooling2D and AveragePooling2D with asymmetric padding

facebook/fb-caffe-exts/torch2caffe

Some handy utility libraries and tools for the Caffe deep learning framework, which has ** A library for converting pre-trained Torch models to the equivalent Caffe models.**

pytorch-caffe-darknet-convert

Convert between pytorch, caffe and darknet models. Caffe darknet models can be load directly by pytorch.

Teaonly/trans-torch

Translating Torch model to other framework such as Caffe, MxNet ...

e-lab/th2caffe

A torch-nn to caffe converter for specific layers.

hahnyuan/nn_tools

a neural network convertor for models among caffe tensorflow keras

xxradon/PytorchToCaffe: Pytorch model to caffe model, supported pytorch 0.3, 0.3.1, 0.4, 0.4.1 ,1.0 , 1.0.1 , 1.2 ,1.3 .notice that only pytorch 1.1 have some bugs

Providing a tool for neural network frameworks for pytorch and caffe.

The nn_tools is released under the MIT License (refer to the LICENSE file for details).

features:

  1. Converting a pytorch model to caffe model.
  2. Some convenient tools of manipulate caffemodel and prototxt quickly(like get or set weights of layers).
  3. Support pytorch version >= 0.2.(Have tested on 0.3,0.3.1, 0.4, 0.4.1 ,1.0, 1.2)
  4. Analysing a model, get the operations number(ops) in every layers.
    Noting: pytorch version 1.1 is not supported now

requirements

  1. Python2.7 or Python3.x
  2. Each functions in this tools requires corresponding neural network python package (pytorch and so on).

Caffe2 convertor

Convert to Caffe2 model.

CaffeToCaffe2

This is an official convertor, which not only provoide a script also an ipython notebook as below:

onnx-caffe2

Convert PyTorch to Caffe2 (making it especially easy to deploy on mobile devices)

CNTK convertor

Convert to CNTK model.

crosstalkcaffe/CaffeConverter

The tool will help you convert trained models from Caffe to CNTK.

Convert trained models: giving a model script and its weights file, export to CNTK model.

crosstalk

crosstalk is from CNTK contrib.

Theano/Lasagne convertor

Convert to Theano/Lasagne model.

an-kumar/caffe-theano-conversion

This is part of a project for CS231N at Stanford University, written by Ankit Kumar, Mathematics major, Class of 2015

This is a repository that allows you to convert pretrained caffe models into models in Lasagne, a thin wrapper around Theano. You can also convert a caffe model's architecture to an equivalent one in Lasagne. You do not need caffe installed to use this module.

Currently, the following caffe layers are supported:

* Convolution
* LRN
* Pooling
* Inner Product
* Relu
* Softmax

kencoken/caffe-model-convert

Convert models from Caffe to Theano format.

piergiaj/caffe-to-theano

Convert a Caffe Model to a Theano Model. This currently works on AlexNet, but should work for any Caffe model that only includes layers that have been impemented.

Neon convertor  

Convert to Neon model.

NervanaSystems/caffe2neon

Tools to convert Caffe models to neon's serialization format.

This repo contains tools to convert Caffe models into a format compatible with the neon deep learning library. The main script, "decaffeinate.py", takes as input a caffe model definition file and the corresponding model weights file and returns a neon serialized model file. This output file can be used to instantiate the neon Model object, which will generate a model in neon that should replicate the behavior of the Caffe model.

PyTorch convertor  

Convert to PyTorch model.

nerox8664/gluon2pytorch

Convert mxnet / gluon graph to PyTorch source + weights.

ruotianluo/pytorch-resnet

Convert resnet trained in caffe to pytorch model.

clcarwin/convert_torch_to_pytorch

Convert torch t7 model to pytorch model and source.

vzhong/chainer2pytorch

chainer2pytorch implements conversions from Chainer modules to PyTorch modules, setting parameters of each modules such that one can port over models on a module basis.

pytorch-caffe

Load caffe prototxt and weights directly in pytorch without explicitly converting model from caffe to pytorch.

nn-transfer

Convert between Keras and PyTorch models.

Torch convertor  

Convert to Torch model.

kmatzen/googlenet-caffe2torch

Converts bvlc_googlenet.caffemodel to a Torch nn model.

Want to use the pre-trained GoogLeNet from the BVLC Model Zoo in Torch? Do you not want to use Caffe as an additional dependency inside Torch? Use these two scripts to build the network definition in Torch and copy the learned weights from the Caffe model.

kuangliu/mocha

Convert torch model to/from caffe model easily.

szagoruyko/loadcaffe

Convert caffe model to a Torch nn.Sequential model.

Keras convertor  

Convert to Keras model.

AlexPasqua/keras-caffe-converter

It is a both-ways converter between Keras and Caffe. It takes the weights from the .caffemodel using caffe_weight_converter and generates an equivalent Keras model. It also outputs the Python source code used to generate that Keras model.

AlexPasqua/caffe_weight_converter

This project is used as a part of the previous one on this list: AlexPasqua/keras-caffe-converter, which is more complete, documented and easy to use. I'd recommend using that one instead.
This is a Caffe-to-Keras weight converter, i.e. it converts .caffemodel weight files to Keras-2-compatible HDF5 weight files. It can also export .caffemodel weights as Numpy arrays for further processing.

This converter converts the weights of a model only (not the model definition), which has the great advantage that it doesn't break every time it encounters an unknown layer type like other converters to that try to translate the model definition as well. The downside, of course, is that you'll have to write the model definition yourself.

The repository also provides converted weights for some popular models.

qxcv/caffe2keras

Note: This converter has been adapted from code in Marc Bolaños fork of Caffe. See acks for code provenance.

This is intended to serve as a conversion module for Caffe models to Keras models.

Please, be aware that this module is not regularly maintained. Thus, some layers or parameter definitions introduced in newer versions of either Keras or Caffe might not be compatible with the converter. Pull requests welcome!

hahnyuan/nn_tools

a neural network convertor for models among caffe tensorflow keras

MarcBS/keras

Keras' fork with several new functionalities. Caffe2Keras converter, multimodal layers, etc. https://github.com/MarcBS/keras

This fork of Keras offers the following contributions:

Caffe to Keras conversion module Layer-specific learning rates New layers for multimodal data Contact email: [email protected]

GitHub page: https://github.com/MarcBS

MarcBS/keras is compatible with: Python 2.7 and Theano only.

OdinLin/caffe2keras

a simple tool to translate caffe model to keras model.

jamescfli/Deep_Learning_Model_Converter

nn-transfer

Convert between Keras and PyTorch models.

pytorch2keras

Convert pytorch models to Keras.

Darknet convertor  

Convert to Darknet model.

pytorch-caffe-darknet-convert

Convert between pytorch, caffe and darknet models. Caffe darknet models can be load directly by pytorch.

TensorFlow convertor  

Convert to TensorFlow model.

crosstalk

crosstalk is from CNTK.

triagemd/model-converters: Tools for converting Keras models for use with other ML frameworks

Tools for converting Keras models for use with other ML frameworks (coreML, TensorFlow).

hahnyuan/nn_tools

a neural network convertor for models among caffe tensorflow keras

ethereon/caffe-tensorflow: Caffe models in TensorFlow

Convert Caffe models to TensorFlow.

goranrauker/convert-to-tensorflow

Converts a variety of trained models to a frozen tensorflow protocol buffer file for use with the c++ tensorflow api. C++ code is included for using the frozen models.

thtrieu/darkflow

Translate darknet to tensorflow. Load trained weights, retrain/fine-tune using tensorflow, export constant graph def to mobile devices.

dEcmir/lego_yolo

Tensorflow code to to retrain yolo on a new dataset using weights from darknet

This repository contains experiments of transfer learning using YOLO on a new synthetical LEGO data set ROUGH AND UNDOCUMENTED!

alanswx/keras_to_tensorflow

Convert keras models to tensorflow frozen graph for use on cell phones, etc.

amir-abdi/keras_to_tensorflow

General code to convert a trained keras model into an inference tensorflow model.

leonidk/pytorch-tf

Converting a pretrained pytorch model to tensorflow

pytorch2keras

Convert pytorch models to Tensorflow (via Keras)

jinyu121/DW2TF: Darknet Weights to TensorFlow

This is a simple convector which converts Darknet weights file (.weights) to Tensorflow weights file (.ckpt).

leonidk/pytorch-tf

No readme.

Chainer convertor  

Convert to Chainer model.

coreML convertor  

Convert to coreML model.

Apple: Converting Trained Models to Core ML

Convert trained models created with third-party machine learning tools to the Core ML model format.

If your model is created and trained using a supported third-party machine learning tool, you can use Core ML Tools to convert it to the Core ML model format. Table 1 lists the supported models and third-party tools.

Model type Supported models Supported tools
Neural networks Feedforward, convolutional, recurrent Caffe v1
Keras 1.2.2+
Tree ensembles Random forests, boosted trees, decision trees scikit-learn 0.18
XGBoost 0.6
Support vector machines Scalar regression, multiclass classification scikit-learn 0.18
LIBSVM 3.22
Generalized linear models Linear regression, logistic regression scikit-learn 0.18
Feature engineering Sparse vectorization, dense vectorization, categorical processing scikit-learn 0.18
Pipeline models Sequentially chained models scikit-learn 0.18

mxnet/tools/mxnet-to-coreml

Convert MXNet models into Apple CoreML format. This tool helps convert MXNet models into Apple CoreML format which can then be run on Apple devices.

prisma-ai/torch2coreml: Torch7 -> CoreML

This tool helps convert Torch7 models into Apple CoreML format which can then be run on Apple devices.

woffle/torch2ios: Torch7 Library - Convert NN Models To iOS Format

Torch7 Library - Convert NN Models To iOS Format.

Small lib to serialise Torch7 Networks for iOS. Supported Layers include Fully Connected, Pooling and Convolution Layers at present. The library stores the weights & biases (if any) for each layer necesarry for inference on iOS devices.

Bulochkin/keras_models: Keras models with python-based convertor to provide embedding in IOS platform

Keras models with python-based convertor to provide embedding in IOS platform.

triagemd/model-converters: Tools for converting Keras models for use with other ML frameworks

Tools for converting Keras models for use with other ML frameworks (coreML, TensorFlow).

Apple & Google: Tensorflow to CoreML converter

Google collaborated with Apple to create a Tensorflow to CoreML converter announcement.

Support for Core ML is provided through a tool that takes a TensorFlow model and converts it to the Core ML Model Format (.mlmodel).

Paddle convertor  

Convert to Paddle model.

PaddlePaddle/X2Paddle: X2Paddle is a toolkit for converting trained model to PaddlePaddle from other deep learning frameworks. 支持主流深度学习框架模型转换至PaddlePaddle『飞桨』

X2Paddle is a toolkit for converting trained model to PaddlePaddle from other deep learning frameworks.

More detailed models: X2Paddle/x2paddle_model_zoo.md at develop · PaddlePaddle/X2Paddle

More Repositories

1

embedded-ai.bi-weekly

WeChat: NeuralTalk,Weekly report and awesome list of embedded-ai.
376
star
2

Chinese-UFLDL-Tutorial

[UNMAINTAINED] 非监督特征学习与深度学习中文教程,该版本翻译自新版 UFLDL Tutorial 。建议新人们去学习斯坦福的CS231n课程,该门课程在网易云课堂上也有一个配有中文字幕的版本。
337
star
3

OpenCL-101

Learn OpenCL step by step.
C
130
star
4

OpenMP-101

Learn OpenMP examples step by step
C
85
star
5

statistical-learning-methods-note

李航《统计学习方法》笔记和 Python 实现(不基于任何代数运算库)。
Python
59
star
6

darknet2caffe

Convert Darknet model to Caffe's
Python
49
star
7

android-reverse-engineering

android-reverse-engineering
26
star
8

Douban-Crawler

抓取豆瓣小组相关信息(小组、用户、帖子)。
Python
24
star
9

link-prediction

[UNMAINTAINED] 基于PySpark与MySQL的复杂网络链路预测。
Python
21
star
10

sword-x-offer

66 classic and common interview problems from 《剑指offer》 with multiple-method-CPP solutions, and common data structure summary, etc
20
star
11

awesome-deep-learning-finetune-experience

This repository not only contains experience about parameter finetune, but also other in-practice experience such as model ensemble (boosting, bagging and stacking) in Kaggle or other competitions.
16
star
12

cv-template

LaTeX resume template
7
star
13

deep-learning-model-archtecture-design-advice

6
star
14

git-101

5
star
15

kaggle-cervical-cancer-screening-classification

Solution and summary for Intel & MobileODT Cervical Cancer Screening (3-class classification)
Jupyter Notebook
5
star
16

Chatter-Bot-CN

基于ChatterBot框架,做一个中文聊天机器人。
Python
5
star
17

logging

A light-weight C++ logging for mobile.
C++
5
star
18

kaggle-lung-cancer-classification

kaggle data science bowl 2017 solution
Jupyter Notebook
4
star
19

naive-binary-gemm

C
3
star
20

caffe-tools

Python
3
star
21

spam-msg-classifier

A spam message classifier based on Naive Bayes.
Python
3
star
22

add-license-for-repo

Add license content for each file in repository recursively
Python
2
star
23

Chinese-word-segmentation

Accomplish Chinese word segmentation by Python.
Python
2
star
24

tmp

C++
2
star
25

stock-newspaper-crawler

[UNMAINTAINED]Crawl 4 kinds of finance newspaper corpus (from CCSTOCK.CN).
Python
2
star
26

tiny-deep-learning-models

fast, tiny deep learning models for mobile and embedded devices
2
star
27

pyTextRank

基于 PageRank 的关键词提取,关键句子提取(摘要)算法的 Python 实现。此外,还有一个基于此的句子相似度算法。
Jupyter Notebook
2
star
28

flask-test

Python
1
star
29

docker-101

1
star
30

monitor

Monitor service status and restart if service dead
Python
1
star
31

Django-TODO

A TODO list project by Django
Python
1
star
32

kaggle-dog-cat-classification

1
star
33

ysh329

1
star
34

software-config

Configures including vim, Xshell and etc.
Vim Script
1
star
35

conv-scale

1
star
36

deXtop

A desktop tool automaticly switching wallpapers on Ubuntu 16.04.
Python
1
star
37

build-101

CMake
1
star
38

deep-learning-operator

implementation, benchmark, optimization
C
1
star
39

Titanic-Machine-Learning-from-Disaster

In this challenge, we ask you to complete the analysis of what sorts of people were likely to survive. In particular, we ask you to apply the tools of machine learning to predict which passengers survived the tragedy.
Python
1
star
40

wordsDB

As the march of project Chinese-word-segmentation, I found that I should create and sustain a words database first. In this projec, mainly concentrating on the general words (come from modern Chinese dictionary, which as the first part) and professional words about financial, stock, fund and economics aspects.
Python
1
star