2015-11-20 12 views
6

異なるチームは、ニューラルネットワーク(caffe、torch、theano ...)を訓練し、実行するために異なるライブラリを使用します。これにより共有が困難になります。各ライブラリにはネットワークを保存する独自のフォーマットがあり、他のチームの作業をテストするたびに新しいライブラリをインストールする必要があります。ニューラルネットワークの一般的な形式はありますか

私はこれをやりにくくするための解決策を探しています: - ニューラルネットワークを格納するための好ましい形式(共有?)はありますか? - さまざまな種類のネットワークを処理したり、あるタイプを別のタイプに変換するのに役立つサービスやライブラリがありますか?

ありがとうございました!

+2

短い回答:いいえ、いいえ。 通常、各ライブラリには、正確に何をしようとしているかによって賛否両論があります。 動作が異なるため、すべてのライブラリに一致するガイドラインや仕様を策定するのは難しいので、一般的なフォーマットは推奨されません。 もちろん、誰かがほとんどのニーズに合ったフォーマットを見つけていない限り、もちろんです。 –

答えて

8

ニューラルネットワークを格納するのに好ましい(共有?)形式はありますか?

各ライブラリ/フレームワークには、独自のシリアル化があります。 CaffeはProtocol Buffers、Torchはbuilt-in serialization scheme、Theanoオブジェクトはserialized with pickleです。 OverFeat又はdarknet重みとバイアスのようないくつかのケースでは

は、対応float(又はdouble)の連続配列(詳細はthis answerを参照)の平面fwrite -s介してバイナリ形式でディスク上に格納されます。これは、別個に知られているか表現されていなければならないネットワーク/モデル(例えば、declared explicitly at load timeのようなもの)のアーキテクチャをカバーしていないことに注意してください。

また、libccvのようなライブラリは、構造体および重みをSQLite databaseに格納します。

さまざまなタイプのネットワークを処理したり、あるタイプを別のタイプに変換したりするサービスやライブラリがありますか?

私はそうすると主張する単一の(メタ)ライブラリはないと思います。しかし、それは便利なコンバーターを提供する明確なプロジェクトです。

いくつかの例(非網羅的):

-

更新(2017-09):2つの注目すべきイニシアティブは、

(1)ONNXフォーマット(a.k.a.オープンニューラルネットワーク取引所):

[...]フレームワーク

間で転送されるモデルを可能に深い学習モデルを表現するための標準は、これらのblogpostsを参照してください。

(2)アップル社によって導入CoreML形式:

[...] ML法の広範なセットに対する公開ファイル形式(.mlmodel)[...]この形式のモデル缶Xcodeを通じて直接アプリケーションに統合することができます。

関連する問題