0

私は深い学習のためにcaffeライブラリを使用します。caffeライブラリを理解する

ライブラリの仕組みについて少し混乱します。

私は何を理解することはnet.cpp, net.h

のAPIでは、ユーザーのアプリケーションへのインターフェイスです。

net.cpp, net.h使用API​​:caffe.pb.cc, caffe.pb.h

(1)caffe/src/caffe/layerscaffe.pb.cc, caffe.pb.h中の層の間の関係はどのような私が混同されていますか?

(2)このクラスNetParameter inside caffe.pb.hは何を目的としていますか?

(3)これは何ですか?caffe.pb

答えて

1

Caffeは、ネットワーク構造を定義するためにgoogle protocol buffer( "pb")を使用しています。 Caffeモデルを作成/ダウンロードするときは'train.prototxt'または'deploy.prototxt'ファイルが表示されます。これらのファイルは、Caffeのプロトコルバッファ構文(caffe.protoで定義)に従って書かれています。
このプロトコルバッファは、自動的に生成されたcaffe.pb.ccおよびcaffe.pb.hファイルで定義されたC++インターフェイスにコンパイルされます。

NetParameter構造体は、caffe.protoで定義され、 "ネット"を表す責任があるデータ型です。さまざまな層の機能的な実装はsrc/caffe/layers/*.cppファイルにあります。

+0

はいNetParameterはネットを表します。しかし、なぜそれが機能のローカルとして使用されます。例えば、 :: Net(const文字列とparam_file、位相フェーズ、 const intレベル、constベクトル *ステージ、 const Net * root_net)のコンストラクタ内部と他のいくつかの関数。 googlenet.prototxtを使用する場合のようにネットがグローバルであるため、ネットを表すのがグローバルである必要はありません。そのネットはグローバルです。 – batuman

+1

今私は理解した。 NetParameterはグローバルである必要はありません。ネットワークからデータを読み込み、ネットのどの設定を、レイヤー、blobs、およびネットクラス内の他のすべてのベクトルに割り当てるためです。設定後、そのNetParameterは必要ありません。 – batuman

関連する問題