サーチ…


備考

caffeユーザーは、caffeオブジェクトに特定の操作を実行するための指示を送信します。これらのオブジェクトは、その設計仕様に基づいて相互作用し、操作を実行します。これはOOPパラダイムの基本原則です。

多くのcaffeオブジェクトタイプ(またはC ++クラス)がありますが、最初の基本的な理解のために、4つの重要なcaffeオブジェクトに焦点を当てています。この段階での私たちの目的は、具体的な実装と設計の詳細が漏れ出す高度に抽象化されたレベルで、これらのオブジェクト間の相互作用を単に観察し、その代わりに操作の鳥瞰図に焦点を合わせることです。

4つの基本的なcaffeオブジェクトは次のとおりです。

  • ソルバー
  • ネット
  • ブロブ

非常に基本的な導入と、caffeの作業における役割の鳥瞰図が、例のセクションで簡潔に示されています。

これらのカフェオブジェクトがどのように相互作用するかの基本的な考え方を読んで理解した後、それぞれのオブジェクトタイプを専用のトピックで詳細に読むことができます。

これらのオブジェクトがどのように相互作用するか。

  • ユーザーはCNNのトレーニングとテストにcaffeを使用しようとしています。ユーザは、CNNアーキテクチャ設計(例えば、層数、フィルタ数、およびその詳細など)を決定する。ユーザはまた、訓練が実行される場合に、訓練および学習パラメータのための最適化技術を決定する。操作が単純なバニラ試験の場合、事前に訓練されたモデルがユーザーによって指定されます。このすべての情報を使用して、ユーザーはSolverオブジェクトをインスタンス化し、Solverオブジェクトに命令(トレーニングやテストなどの操作を決定する)を提供します。

  • ソルバー :このオブジェクトは、CNNのトレーニングとテストを監督するエンティティとして見なすことができます。それはプロセッサ上でCNNを稼働して実行している実際の請負業者です。それは、CNNが訓練を受けるようになる特定の最適化を実行することに特化しています。

  • Net :Netは、操作が実行される実際のCNNを表す専門オブジェクトと考えることができます。ネットは、実際にCNNにメモリを割り当て、それをインスタンス化するようSolverから指示されます。ネットはまた、実際にCNNを介してフォワードまたはバックプロパゲーションが行われるように指示する指示を与える責任があります。

  • レイヤー :CNNの特定のレイヤーを表すオブジェクトです。したがって、CNNは層で構成されています。 Caffeに関する限り、 Netオブジェクトは、アーキテクチャ定義で指定された各「 レイヤー 」タイプをインスタンス化し、異なるレイヤーを互いに接続します。特定のレイヤーは、特定の操作セットを実行します(例えば、最大プール、最小プール、2Dコンボリューションなど)

  • ブロブ :トレーニングとテストの間、CNNを介してデータが流れます。このデータには、ユーザーデータを格納する以外に、CNNで実行されるいくつかの中間計算も含まれます。このデータはBlobというオブジェクトにカプセル化されています。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow