Keras (Theano を使用) を使用して CNN モデルをトレーニングしています。私のC++アプリケーションでそれをどのように使用できるか知っている人はいますか? 誰かが似たようなことを試しましたか?ネットワーク関数を使用して C++ コードを生成する Python コードを作成することを考えています - 何か提案はありますか?
ここで、C++ で Tensorflow Keras モデルを使用する方法について同様の質問を見つけましたが、回答はありません。
Keras (Theano を使用) を使用して CNN モデルをトレーニングしています。私のC++アプリケーションでそれをどのように使用できるか知っている人はいますか? 誰かが似たようなことを試しましたか?ネットワーク関数を使用して C++ コードを生成する Python コードを作成することを考えています - 何か提案はありますか?
ここで、C++ で Tensorflow Keras モデルを使用する方法について同様の質問を見つけましたが、回答はありません。
私自身の質問に答えて解決策を得るために、keras2cppという単純な C++ ソリューションを作成しました (そのコードは github で入手できます)。
このソリューションでは、ネットワーク アーキテクチャ (json) と重み (hdf5) を保存します。次に、提供されたスクリプトを使用して、ネットワークをプレーン テキスト ファイルにダンプできます。取得したテキスト ファイルは、純粋な C++ コードのネットワークで使用できます。Python ライブラリまたは hdf5 への依存関係はありません。theano および tensorflow バックエンドで動作するはずです。
最も簡単な方法は、C++ から読み取ることができるバイナリまたはHDF5ファイルに予測を書き込む Python スクリプトへのシステム コールを作成することです。Python を C++ に直接統合することもできます。
これを簡単にデプロイして配布する必要がある場合は、 Anacondaなどの自己完結型の Python インストールを調べることができますが、最善の策は、Keras を避け、Caffeまたは Tensorflow への C++ インターフェイスを使用することです。C++ からの使用は標準ではないため、Tensorflow はお勧めしません。この議論を参照してください。Caffe は間違いなく2 番目に人気のあるディープ ラーニング ライブラリであるため、間違いはありません。
私にも同様のニーズがあり、C++ アプリケーションに Keras モデルを埋め込みたいと考えていましたが、独自のライブラリを作成することにしました: Kerasify
Kerasify の設計目標:
サンプル コード、単体テストなどは github リンクにあります。完全ではありません。私が使用している Keras 関数の狭いサブセットしかサポートしていませんが、少し努力すれば拡張できるはずです。