Caffe 架構介紹_Caffe

來源:互聯網
上載者:User

1.Caffe是一種開源軟體架構,內部提供了一套基本的編程架構,或者說一個模板架構,用以實現GPU並行架構下的深度卷積神經網路,Deep Learning等演算法,我們可以按照架構定義各種各樣的卷積神經網路的結構,並且可以再此架構下增加自己的代碼,設計新的演算法,該架構的一個問題就是,只能夠使用卷積網路,所有架構都是再基於卷積神經網路的模型上進行的。
2.而tensorflow能夠完成更多的深度學習演算法,比如RNN,LSTM等。
3.caffe具有三個基本原子結構,顧名思義,原子結構就是說不能隨意更改,caffe的編程架構就是在這三個原子下實現,它們分別是:Blobs, Layers, and Nets。
Blob就是一個封裝器,在caffe這個流程中,所有的資料都要被封裝成blob格式。然後在caffe的架構下進行編程和處理,這點事我們不能隨意更改的,因為caffe本身提供了很多已經設計好的函數和類,我們隨意更改資料包轉器就等於沒法再使用其中的函數,你就沒法再Caffe的架構下設計深度神經網路。blob的格式就是(Number,Channel,Height,Width)將資料按照四元組的方式儲存,這裡由於是處理的映像資料,所以後面三維代表映像的資料格式,Channel代表映像的通道數,如灰階圖是1通道,Channel=1,RGB映像是3通道,Channel=3,Height和Width分別是映像的長寬。至於Number則代表Batch,由於記憶體有限,所以我們進行訓練的時候我們只能分批進行,這裡還為每個batch設定了一個標識號,後面會看到我們使用隨機梯度下降演算法(Schocastic gredient descent,SGD)對模型進行訓練,其中就是要使用到Batch,blob不僅僅只用來儲存深度網路進行前向過程時的資料,還用來儲存在後向求梯度過程時的梯度資料。
具體使用方式:
const Dtype* cpu_data() const;
Dtype* mutable_cpu_data();
上面兩中格式分別表示資料的固態模式和和自由模式,blob具有CPU的資料儲存和GPU的資料儲存,同時blob將資料在CPU和GPU之間的交換封裝起來了,並進行了同步處理,因此我們不需要理會資料在GPU和CPU之間的互動。
layers是組成網路結構的單位,接受下層的資料作為輸入,通過內部的運算輸出。Caffe中網路層的使用定義,和一般的深度學習庫類似,,都有三個步驟,1:建立層,包括建立串連關係初始化其中一些變數。2:前向計算過程,接受輸入資料並計算出輸出,3:後向過程,進行反向梯度的計算,並把梯度儲存在層結構中。
Nets是由layers組成的,定義了輸入輸出以及網路各層,就定義了一個net。比如:一個最基本的單隱層網路定義如下:
name: “LogReg”
layers {
name: “mnist”
type: DATA
top: “data”
top: “label”
data_param {
source: “input_leveldb”
batch_size: 64
}
}
layers {
name: “ip”
type: INNER_PRODUCT
bottom: “data”
top: “ip”
inner_product_param {
num_output: 2
}
}
layers {
name: “loss”
type: SOFTMAX_LOSS
bottom: “ip”
bottom: “label”
top: “loss”
}
可以使用Net::Init()對定義的網路進行初始化和檢查,初始化包括對一些變數權值初始化,,檢查包括對網路的結構的正確性進行檢查,因為涉及到網路的上下層串連關係的匹配和耦合串連。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.