プロジェクトは継続的に更新されます......
プルリクエストは大歓迎です!
注:これは、すべてのフレームワークの1つのコンバーターではなく、異なるコンバーターのコレクションです。 Githubはオープンソースのプラットフォームであるため、ここでお互いを助け、みんなの強さを集めることができることを願っています。
これらの異なるフレームワークのため、さまざまなフレームワークのディープラーニングモデルの素晴らしいコンバーターが発生します。すべてのコンバーターをテストしなかったので、それぞれが利用可能であることを保証することはできませんでした。しかし、私はこのコンバーターコレクションがあなたを助けるかもしれないことを願っています!
以下のシートは、GitHubのすべてのコンバーターの概要です(提供された公式だけでなく、ユーザー自己実装が含まれています)。私はこれらのコンバーターを収集するためにちょっとした作業をしています。また、誰もがこのプロジェクトをサポートして、さまざまなフレームワークのためにクレイジーな人々をより多くの人々に支援できることを願っています。
| コンバーター | mxnet | カフェ | caffe2 | cntk | Theano/Lasagne | ネオン | Pytorch | トーチ | ケラス | darknet | Tensorflow | チェーン | coreml/iOS | パドル | onnx |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| mxnet | - | mmdnn mxnet2caffe mxnet2caffe | mmdnn(ONNXを介して) | mmdnn | なし | なし | mmdnn gluon2pytorch | なし | mmdnn | なし | mmdnn | なし | mxnet-to-coreml mmdnn | なし | なし |
| カフェ | mxnet/tools/caffe_converter resnet_caffe2mxnet mmdnn | - | caffetocaffe2 mmdnn(onnxを介して) | crosstalkcaffe/caffeconverter mmdnn | caffe_theano_conversion caffe-model confe-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 | なし | coremlzoo apple/coremltools mmdnn | x2パドル | caffe2onnx |
| caffe2 | なし | なし | - | onnx | なし | なし | onnx | なし | なし | なし | なし | なし | なし | なし | なし |
| cntk | mmdnn | mmdnn | onnx mmdnn(ONNXを介して) | - | なし | なし | onnx mmdnn | なし | mmdnn | なし | mmdnn | なし | mmdnn | なし | なし |
| Theano/Lasagne | なし | なし | なし | なし | - | なし | なし | なし | なし | なし | なし | なし | なし | なし | なし |
| ネオン | なし | なし | なし | なし | なし | - | なし | なし | なし | なし | なし | なし | なし | なし | なし |
| Pytorch | mmdnn | Brocolli pytorchtocaffe mmdnn pytorch2caffe pytorch-caffe-darknet convert | onnx-caffe2 mmdnn(onnxを介して) | onnx mmdnn | なし | なし | - | なし | mmdnn pytorch2keras nn-transfer | pytorch-caffe-darknet convert | mmdnn pytorch2keras(keras上)pytorch-tf | なし | mmdnn onnx-coreml | なし | なし |
| トーチ | なし | fb-caffe-exts/torch2caffe mocha trant-torch th2caffe | torch2caffe2 | なし | なし | なし | convert_torch_to_pytorch | - | なし | なし | なし | なし | TORCH2COREML TORCH2IOS | なし | なし |
| ケラス | mmdnn | keras-caffe-converter mmdnn nn_tools keras2caffe | mmdnn(ONNXを介して) | mmdnn | なし | なし | mmdnn nn-transfer | なし | - | なし | nn_tools convert-to-tensorflow keras_to_tensorflow keras_to_tensorflow mmdnn | なし | Apple/coremltoolsモデルコンバーターkeras_models mmdnn | なし | なし |
| darknet | なし | pytorch-caffe-darknet convert | なし | mmdnn | なし | なし | pytorch-caffe-darknet convert | なし | mmdnn | - | dw2tf darkflow lego_yolo | なし | なし | なし | なし |
| Tensorflow | mmdnn | mmdnn nn_tools | mmdnn(ONNXを介して) | クロストークmmdnn | なし | なし | pytorch-tf mmdnn | なし | モデルコンバーターnn_tools変換からテンソルフローmmdnn | なし | - | なし | tfcoreml mmdnn | x2パドル | なし |
| チェーン | なし | なし | なし | なし | なし | なし | Chainer2pytorch | なし | なし | なし | なし | - | なし | なし | なし |
| coreml/iOS | mmdnn | mmdnn | mmdnn(ONNXを介して) | mmdnn | なし | なし | mmdnn | なし | mmdnn | なし | mmdnn | なし | - | なし | |
| パドル | なし | なし | なし | なし | なし | なし | なし | なし | なし | なし | なし | なし | なし | - | なし |
| onnx | なし | なし | なし | なし | なし | なし | onnx2torch onnx2torch | なし | なし | なし | なし | なし | なし | x2パドル | - |
あらゆる種類のニューラルネットワーク間を変換するための一般的なフレームワーク
ONNXは、NNの世界に何らかの正気をもたらすために、ニューラルネットワークのコンバーターを統一する努力です。 FacebookとMicrosoftによってリリースされました。詳細については、こちらをご覧ください。
MMDNNは、ユーザーがさまざまな深い学習フレームワーク間で操作できるようにするための一連のツールです。例えば、モデル変換と視覚化。 Caffeemit、CNTK、COREML、KERAS、MXNET、ONNX、Pytorch、Tensorflow間にモデルを変換します。

MXNETモデルに変換します。
さまざまな形式からCOREMLS形式に変換されたいくつかの深い学習モデル。現在利用可能なモデル:
カバーされている主要なトピックには、次のものが含まれます。
これは、深い抵抗性ネットワークをCaffeモデルからMXNETモデルに変換するためのツールです。ウェイトは、Caffe Network Blobsから直接コピーされます。
カフェモデルに変換します。
それは両方の方法でケラスとカフェの間のコンバーターです。 Kerasモデルのみを使用して動作し、CaffeModelファイルとProtoTxtファイルの両方を生成しますが、モデルがある場合は、モデルの説明でProtoTXTファイルを渡すこともできます。
サポート1.9.0以下のPytorch
PytorchモデルをCaffeModelに変換します。
MXNETモデルをCaffeモデルに変換します。
MXNETモデルをCaffeモデルに変換します。
トーチモデルをカフェモデルに簡単に変換します。
このツールは、Caffe 1.0、Keras 2.1.2、Tensorflow 1.4.0でテストしました
ワーキング変換の例:
問題レイヤー:
事前に訓練されたトーチモデルを同等のカフェモデルに変換するためのライブラリを備えたカフェディープラーニングフレームワークのためのいくつかの便利なユーティリティライブラリとツール。**
Pytorch、Caffe、Darknetモデルを変換します。 Caffe Darknetモデルは、Pytorchで直接ロードできます。
トーチモデルをCaffe、Mxnetなどの他のフレームワークに翻訳します...
特定のレイヤー用のトーチNNからカフェコンバーターへ。
カフェテンソルフローケラスのモデルのニューラルネットワークコンバーター
PytorchとCaffeのニューラルネットワークフレームワークのツールを提供します。
NN_TOOLSはMITライセンスの下でリリースされます(詳細については、ライセンスファイルを参照してください)。
特徴:
要件
Caffe2モデルに変換します。
これは公式のコンバーターです。これは、スクリプトを以下のIPythonノートブックも促進するだけでなく、以下のIPythonノートブックも促進するだけではありません。
PytorchをCaffe2に変換します(モバイルデバイスに特に簡単に展開できます)
CNTKモデルに変換します。
このツールは、トレーニングモデルをCaffeからCNTKに変換するのに役立ちます。
トレーニングされたモデルを変換します:モデルスクリプトとその重みファイルを提供し、CNTKモデルにエクスポートします。
クロストークはCNTKコントリブからのものです。
Theano/Lasagneモデルに変換します。
これは、スタンフォード大学のCS231Nのプロジェクトの一部であり、2015年クラスの数学メジャーであるAnkit Kumarによって執筆されました
これは、Theanoの周りの薄いラッパーであるLasagneのモデルに、前処理されたカフェモデルをモデルに変換できるリポジトリです。また、カフェモデルのアーキテクチャをLasagneに同等のアーキテクチャに変換することもできます。このモジュールを使用するためにインストールされているCaffeは必要ありません。
現在、次のカフェ層がサポートされています。
* Convolution
* LRN
* Pooling
* Inner Product
* Relu
* Softmax
モデルをCaffeからTheano形式に変換します。
カフェモデルをTheanoモデルに変換します。これは現在AlexNetで動作しますが、妨げられたレイヤーのみを含むすべてのカフェモデルで機能するはずです。
ネオンモデルに変換します。
CaffeモデルをNeonのシリアル化形式に変換するツール。
このレポは、カフェモデルをNeon Deep Learning Libraryと互換性のある形式に変換するツールが含まれています。メインスクリプト「decaffeinate.py」は、入力としてカフェモデル定義ファイルと対応するモデルの重みファイルを取り、ネオンシリアル化モデルファイルを返します。この出力ファイルは、Neonモデルオブジェクトをインスタンス化するために使用できます。Neonモデルオブジェクトは、Neonのモデルを生成し、Caffeモデルの動作を再現する必要があります。
Pytorchモデルに変換します。
MXNET / GluonグラフをPytorchソース +ウェイトに変換します。
CaffeでトレーニングされたResNetをPytorchモデルに変換します。
トーチT7モデルをPytorchモデルとソースに変換します。
chainer2pytorch 、ChainerモジュールからPytorchモジュールへの変換を実装し、各モジュールのパラメーターを設定して、モジュールベースでモデルを越えてポートできるようにします。
モデルをCaffeからPytorchに明示的に変換することなく、PytorchにCaffe PrototxtとWeightsを直接積み込みます。
KerasモデルとPytorchモデルを変換します。
トーチモデルに変換します。
BVLC_GOOGLENET.CAFFEMODELをトーチNNモデルに変換します。
トーチのBVLCモデル動物園の事前に訓練されたGoogleNetを使用したいですか?トーチ内の追加の依存関係としてカフェを使用したくありませんか?これらの2つのスクリプトを使用して、トーチでネットワーク定義を構築し、Caffeモデルから学習した重みをコピーします。
トーチモデルをカフェモデルに簡単に変換します。
カフェモデルをトーチNN.シーケンシャルモデルに変換します。
Kerasモデルに変換します。
KerasとCaffeの間の両方のウェイズコンバーターです。 caffe_weight_converterを使用して.caffemodelの重みを取り、同等のKerasモデルを生成します。また、Kerasモデルを生成するために使用されるPythonソースコードも出力します。
このプロジェクトは、このリストの以前のプロジェクトの一部として使用されます:Alexpasqua/Keras-Caffe Converterは、より完全で、文書化され、使いやすいです。代わりにそれを使用することをお勧めします。
これは、カフェからケラへの重量コンバーターです。つまり、 .caffemodel WeightファイルをKERAS-2互換のHDF5重量ファイルに変換します。また、 .caffemodel重量をさらに処理するためのnumpyアレイとしてエクスポートすることもできます。
このコンバーターは、モデルのみの重み(モデル定義ではなく)のみを変換します。これは、他のコンバーターのような未知のレイヤータイプに遭遇するたびに、モデル定義を翻訳しようとするたびに壊れないという大きな利点があります。もちろん、マイナス面は、モデル定義を自分で書く必要があることです。
リポジトリは、一部の人気モデルの変換された重みも提供します。
注:このコンバーターは、CaffeのMarcBolañosフォークのコードから採用されています。コード出力については、ACKを参照してください。
これは、KerasモデルへのCaffeモデルの変換モジュールとして機能することを目的としています。
このモジュールは定期的に維持されていないことに注意してください。したがって、KerasまたはCaffeの新しいバージョンで導入されたいくつかのレイヤーまたはパラメーター定義は、コンバーターと互換性がない場合があります。リクエストをプル歓迎!
カフェテンソルフローケラスのモデルのニューラルネットワークコンバーター
いくつかの新しい機能を備えたKerasのフォーク。 caffe2kerasコンバーター、マルチモーダル層など。https://github.com/marcbs/keras
ケラスのこのフォークは、次の貢献を提供します。
カフェからケラスへの変換モジュールレイヤー固有の学習レートマルチモーダルデータの新しいレイヤー連絡先メール:[email protected]
githubページ:https://github.com/marcbs
Marcbs/Kerasは、Python 2.7とTheanoのみと互換性があります。
カフェモデルをケラスモデルに翻訳する簡単なツール。
KerasモデルとPytorchモデルを変換します。
PytorchモデルをKerasに変換します。
DarkNetモデルに変換します。
Pytorch、Caffe、Darknetモデルを変換します。 Caffe Darknetモデルは、Pytorchで直接ロードできます。
Tensorflowモデルに変換します。
クロストークはCNTKからです。
Kerasモデルを他のMLフレームワーク(Coreml、Tensorflow)で変換するためのツール。
カフェテンソルフローケラスのモデルのニューラルネットワークコンバーター
カフェモデルをTensorflowに変換します。
C ++ Tensorflow APIで使用するために、さまざまな訓練されたモデルを凍結したTensorflowプロトコルバッファファイルに変換します。 C ++コードは、冷凍モデルを使用するために含まれています。
DarknetをTensorflowに翻訳します。トレーニングされた重量をロードし、Tensorflowを使用した再訓練/微調整、モバイルデバイスに定数グラフDEFをエクスポートします。
darknetのウェイトを使用して、新しいデータセットでヨロを再訓練するためのtensorflowコード
このリポジトリには、新しい合成のLEGOデータセットでYoloを使用した転送学習の実験が大まかで文書化されていません!
KerasモデルをTensorflow Frozen Graphに変換して、携帯電話などで使用します。
訓練されたKerasモデルを推論Tensorflowモデルに変換する一般的なコード。
前処理されたPytorchモデルをTensorflowに変換します
pytorchモデルをtensorflowに変換する(keras経由)
これは、Darknet Weightsファイル(.Weights)をTensorflow Weightsファイル(.ckpt)に変換するシンプルなコンベクターです。
readmeはありません。
チェーンモデルに変換します。
coremlモデルに変換します。
サードパーティの機械学習ツールで作成されたトレーニングモデルをコアMLモデル形式に変換します。
サポートされているサードパーティの機械学習ツールを使用してモデルが作成およびトレーニングされている場合は、Core MLツールを使用してCore MLモデル形式に変換できます。表1に、サポートされているモデルとサードパーティツールを示します。
| モデルタイプ | サポートされているモデル | サポートされているツール |
|---|---|---|
| ニューラルネットワーク | フィードフォワード、畳み込み、再発 | カフェV1 ケラス1.2.2+ |
| ツリーアンサンブル | ランダムな森林、ブーストされた木、決定木 | Scikit-Learn0.18 xgboost 0.6 |
| ベクターマシンをサポートします | スカラー回帰、マルチクラス分類 | Scikit-Learn0.18 LIBSVM 3.22 |
| 一般化された線形モデル | 線形回帰、ロジスティック回帰 | Scikit-Learn0.18 |
| 機能エンジニアリング | スパースベクトル化、密なベクトル化、カテゴリ処理 | Scikit-Learn0.18 |
| パイプラインモデル | 連続的にチェーンされたモデル | Scikit-Learn0.18 |
MXNETモデルをApple CoreML形式に変換します。このツールは、MXNETモデルをApple CoreML形式に変換し、Appleデバイスで実行できます。
このツールは、TORCH7モデルをApple CoreML形式に変換するのに役立ち、Appleデバイスで実行できます。
TORCH7ライブラリ-NNモデルをiOS形式に変換します。
iOS用のシリアル化TORCH7ネットワークへの小さなLIB。サポートされているレイヤーには、現在、完全に接続された、プーリング、畳み込み層が含まれます。ライブラリは、iOSデバイスに推論するために、各レイヤーネクサリーの重みとバイアス(存在する場合)を保存します。
Pythonベースのコンバーターを備えたKerasモデルは、iOSプラットフォームに埋め込みを提供します。
Kerasモデルを他のMLフレームワーク(Coreml、Tensorflow)で変換するためのツール。
GoogleはAppleと協力してTensorflow to Coreml Converterの発表を作成しました。
Core MLのサポートは、Tensorflowモデルを採用し、Core MLモデル形式(.mlmodel)に変換するツールを介して提供されます。
パドルモデルに変換します。
X2Paddleは、トレーニングされたモデルを他の深い学習フレームワークからパドルパドルに変換するためのツールキットです。
より詳細なモデル:x2paddle/x2paddle_model_zoo.md at develop・paddlepaddle/x2paddle