caffe教程 (2)
caffe教程
1 caffe簡(jiǎn)介
Caffe是一個(gè)深度學(xué)習(xí)框架,本教程解釋了它的理念,體系結(jié)構(gòu)和用法。這是一本實(shí)用指南和框架介紹,所以深入學(xué)習(xí)的全部前沿,背景和歷史不能在這里介紹。盡可能給出解釋,機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的背景是有幫助的。
2 Caffe特點(diǎn)
- 表達(dá)式:模型和優(yōu)化定義為明文模式而不是代碼。
- 速度:對(duì)于研究和行業(yè)來說,速度對(duì)于最先進(jìn)的模型和海量數(shù)據(jù)至關(guān)重要。
- 模塊化:新的任務(wù)和設(shè)置需要靈活性和擴(kuò)展性。
- 開放性:科學(xué)和應(yīng)用進(jìn)展需要共同的代碼,參考模型和可重復(fù)性。
- 社區(qū):學(xué)術(shù)研究,啟動(dòng)原型和工業(yè)應(yīng)用都通過在BSD-2項(xiàng)目中進(jìn)行聯(lián)合討論和開發(fā)來共享優(yōu)勢(shì)。
3 caffe組成
Blob,Layer,Net,Solver
Blob:是基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),是用來保存學(xué)習(xí)到的參數(shù)以及網(wǎng)絡(luò)傳輸過程中產(chǎn)生數(shù)據(jù)的類。
Layer:是網(wǎng)絡(luò)的基本單元,由此派生出了各種層類。修改這部分的人主要是研究特征表達(dá)方向的。
Net:是網(wǎng)絡(luò)的搭建,將Layer所派生出層類組合成網(wǎng)絡(luò)。
Solver:是Net的求解,修改這部分人主要會(huì)是研究DL求解方向的。
3.1blob
Caffe支持CUDA,在數(shù)據(jù)級(jí)別上也做了一些優(yōu)化,這部分最重要的是知道它主要是對(duì)protocol buffer所定義的數(shù)據(jù)結(jié)構(gòu)的繼承,Caffe也因此可以在盡可能小的內(nèi)存占用下獲得很高的效率。(追求性能的同時(shí)Caffe也犧牲了一些代碼可讀性)
在更高一級(jí)的Layer中Blob用下面的形式表示學(xué)習(xí)到的參數(shù):
這里使用的是一個(gè)Blob的容器是因?yàn)槟承㎜ayer包含多組學(xué)習(xí)參數(shù),比如多個(gè)卷積核的卷積層。
以及Layer所傳遞的數(shù)據(jù)形式,后面還會(huì)涉及到這里:
3.2 Layer
5大Layer派生類型
Caffe十分強(qiáng)調(diào)網(wǎng)絡(luò)的層次性,也就是說卷積操作,非線性變換(ReLU等),Pooling,權(quán)值連接等全部都由某一種Layer來表示。具體來說分為5大類Layer
1 NeuronLayer類 定義于neuron_layers.hpp中,其派生類主要是元素級(jí)別的運(yùn)算(比如Dropout運(yùn)算,激活函數(shù)ReLu,Sigmoid等),運(yùn)算均為同址計(jì)算(in-place computation,返回值覆蓋原值而占用新的內(nèi)存)。
2 LossLayer類 定義于loss_layers.hpp中,其派生類會(huì)產(chǎn)生loss,只有這些層能夠產(chǎn)生loss。
3 數(shù)據(jù)層 定義于data_layer.hpp中,作為網(wǎng)絡(luò)的最底層,主要實(shí)現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換。
4 特征表達(dá)層(我自己分的類)定義于vision_layers.hpp(為什么叫vision這個(gè)名字,我目前還不清楚),實(shí)現(xiàn)特征表達(dá)功能,更具體地說包含卷積操作,Pooling操作,他們基本都會(huì)產(chǎn)生新的內(nèi)存占用(Pooling相對(duì)較小)。
5 網(wǎng)絡(luò)連接層和激活函數(shù)(我自己分的類)定義于common_layers.hpp,Caffe提供了單個(gè)層與多個(gè)層的連接,并在這個(gè)頭文件中聲明。這里還包括了常用的全連接層InnerProductLayer類。
Layer的重要成員函數(shù)
在Layer內(nèi)部,數(shù)據(jù)主要有兩種傳遞方式,正向傳導(dǎo)(Forward)和反向傳導(dǎo)(Backward)。Forward和Backward有CPU和GPU(部分有)兩種實(shí)現(xiàn)。Caffe中所有的Layer都要用這兩種方法傳遞數(shù)據(jù)。
未完待續(xù)……………………
總結(jié)
以上是生活随笔為你收集整理的caffe教程 (2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度贴吧的数据抓取和分析(一):指定条目
- 下一篇: C# FTP 上传、下载、获取文件列表