這些物件如何相互作用

  • 使用者希望使用 caffe 進行 CNN 培訓和測試。使用者決定 CNN 架構設計(例如 - 層數,濾波器數量及其細節等)。在要進行訓練的情況下,使用者還決定用於訓練和學習引數的優化技術。如果操作是普通的香草測試,則由使用者指定預先訓練的模型。使用所有這些資訊,使用者例項化一個 Solver 物件,併為 Solver 物件提供一條指令(它決定了諸如訓練和測試之類的操作)。

  • :可以將此物件視為監督 CNN 的訓練和測試的實體。實際的承包商在處理器和執行中獲得 CNN。它專門用於執行導致 CNN 接受培訓的特定優化。

  • Net :Net 可以被認為是一個專家物件,代表實際操作的 CNN。Solver 指示 Net 實際為 CNN 分配記憶體並例項化它。Net 還負責發出實際導致通過 CNN 進行前向或後向傳播的指令。

  • 圖層 :它是表示 CNN 的特定圖層的物件。因此 CNN 由層組成。就 caffe 而言, Net 物件例項化體系結構定義中指定的每個Layer型別,它還將不同的層連線在一起。特定層執行一組特定的操作(例如 - 最大池,最小池,2D 卷積等)

  • Blob :資料在訓練和測試期間流經 CNN。除了包含使用者資料之外,該資料還包括通過 CNN 執行的若干中間計算。此資料封裝在名為 Blob 的物件中。