2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Caffe學(xué)習(xí)教程,信息科學(xué)與技術(shù)學(xué)院412實(shí)驗(yàn)室,Contents,,,1. 準(zhǔn)備數(shù)據(jù),Software Engineering Institute, BNU,1、準(zhǔn)備數(shù)據(jù),Caffe可以以下面的方式讀取數(shù)據(jù):,從專用的數(shù)據(jù)庫中讀取(lmdb、leveldb)直接讀取圖片從內(nèi)存中讀取從HDF5文件中讀取從滑動窗口中讀取,最常用的是前面兩種方式。默認(rèn)是從lmdb數(shù)據(jù)庫格式中讀取,因此需要先把圖片文件轉(zhuǎn)換成lmdb格式文件。直

2、接讀取圖片會導(dǎo)致無法減均值。如果不考慮減均值的情況,可使用這種方法。,1、準(zhǔn)備數(shù)據(jù),第一步:得到文件列表清單,,Train.txt,1、準(zhǔn)備數(shù)據(jù),第二步:轉(zhuǎn)換成lmdb,命令調(diào)用格式:convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME需要帶四個參數(shù):FLAGS: 圖片參數(shù)(可選),用于調(diào)整圖片大小和打亂順序。ROOTFOLDER/: 圖片存放的絕對路徑,從linux系

3、統(tǒng)根目錄開始LISTFILE: 圖片文件列表清單,一般為一個txt文件,一行一張圖片DB_NAME: 最終生成的db文件存放目錄,例:convert_imageset /home/bnu/fer/train/ /home/bnu/fer/train.txt /home/bnu/fer/train_lmdb,1、準(zhǔn)備數(shù)據(jù),第二步:轉(zhuǎn)換成lmdb,完整例子:convert_imageset --shuffle \ --resi

4、ze_height=256 \ --resize_width=256 \ /home/bnu/fer/train/ \/home/bnu/fer/train.txt \/home/bnu/fer/train_lmdb,轉(zhuǎn)換成功后,會生成一個train_lmdb文件夾,里面有兩個文件,打亂順序改變高度為256像素改變寬度為256像素圖片存放的絕對路徑圖片列表清單文件生成的文件,更多參考:http://www.cnblog

5、s.com/denny402/p/5082341.html,1、準(zhǔn)備數(shù)據(jù),第三步:計(jì)算均值,命令調(diào)用格式:compute_image_mean param1 param2Param1: lmdb文件夾Param2: 保存文件路徑及名稱,將訓(xùn)練集的均值計(jì)算出來,并保存為binaryporto文件,以便在訓(xùn)練時調(diào)用。,compute_image_mean /home/bnu/fer/train_lmdb /home/bnu/fer

6、/mean.binaryproto,更多參考:http://www.cnblogs.com/denny402/p/5102328.html,2、構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),在運(yùn)行的整個流程中,可以分為三個階段:訓(xùn)練階段、驗(yàn)證階段和測試階段。網(wǎng)絡(luò)結(jié)構(gòu)在不同的階段是不同的,都存放在prototxt文件里面。為了方便,一般將訓(xùn)練階段和驗(yàn)證階段的網(wǎng)絡(luò)結(jié)構(gòu)放在一個文件里,測試階段的網(wǎng)絡(luò)結(jié)構(gòu)單獨(dú)放在一個文件里。,Company name,www.themegal

7、lery.com,訓(xùn)練和驗(yàn)證階段的網(wǎng)絡(luò)結(jié)構(gòu)文件,測試階段的網(wǎng)絡(luò)結(jié)構(gòu)文件,2、構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),2、構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu)(數(shù)據(jù)層),layer { name: "data" type: "Data" top: "data" top: "label" include { phase: TRAIN } transform_param {

8、 mirror: true crop_size: 40 mean_file: "/home/xqh/fer/mean.binaryproto" } data_param { source: "/home/xqh/fer/fer/train_db" batch_size: 64 backend: LMDB }},Name指定層的名稱,不能有重

9、復(fù)。Type指定層的類型自底向上,top用于指定向上傳遞的數(shù)據(jù)名稱。數(shù)據(jù)層需要往上輸出圖片數(shù)據(jù)和標(biāo)簽數(shù)據(jù)。Include用于指定該層屬于訓(xùn)練階段還是驗(yàn)證階段數(shù)據(jù)轉(zhuǎn)換參數(shù):是否鏡像裁剪均值文件Lmdb數(shù)據(jù)源批次大小數(shù)據(jù)源格式,更多參考:http://www.cnblogs.com/denny402/p/5070928.html,2、構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu)(卷積層),layer { name: "conv1&q

10、uot; type: "Convolution" bottom: "data" top: "conv1" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num

11、_output: 32 pad: 2 kernel_size: 5 stride: 1 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" value: 0.0 } }},bottom用于指

12、定傳入的數(shù)據(jù)名稱,top用于該層的數(shù)據(jù)輸出,bottom和top起到數(shù)據(jù)流動作用lr_mult: 學(xué)習(xí)率的系數(shù),最終的學(xué)習(xí)率是這個數(shù)乘以solver.prototxt配置文件中的base_lr。如果有兩個lr_mult, 則第一個表示權(quán)值的學(xué)習(xí)率,第二個表示偏置項(xiàng)的學(xué)習(xí)率。一般偏置項(xiàng)的學(xué)習(xí)率是權(quán)值學(xué)習(xí)率的兩倍。Num_output:卷積核的數(shù)量Pad:邊緣填充Kernel_size:卷積核大小Stride:滑動步長We

13、ight_filler:權(quán)值初始化,此處表示高斯隨機(jī)初始化Bias_filler: 偏置項(xiàng)初始化,此處表示初始化為常數(shù)0,更多參考:http://www.cnblogs.com/denny402/p/5071126.html,w1=(w0+2*pad-kernel_size)/stride+1; h1=(h0+2*pad-kernel_size)/stride+1;,2、構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu)(激活層),更多參考:http://ww

14、w.cnblogs.com/denny402/p/5072507.html,layer { name: "relu" type: "ReLU" bottom: “conv1" top: “relu1"},可選的激活函數(shù)有: ReLU, Sigmoid, TanH等,Sigmoid:,ReLU:,TanH:,2、構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu)(池化層),更多參考:http://w

15、ww.cnblogs.com/denny402/p/5071126.html,layer { name: "pool1" type: "Pooling" bottom: “relu1" top: "pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 }},

16、pool: 池化方法,默認(rèn)為MAX。目前可用的方法有MAX, AVE, 或STOCHASTICpad: 和卷積層的pad的一樣,進(jìn)行邊緣擴(kuò)充。默認(rèn)為0stride: 池化的步長,默認(rèn)為1。一般我們設(shè)置為2,也可以用stride_h和stride_w來設(shè)置。,w1=(w0+2*pad-kernel_size)/stride+1; h1=(h0+2*pad-kernel_size)/stride+1;,2、構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu)(全連接層)

17、,layer { name: “fc7" type: "InnerProduct" bottom: "pool2" top: “fc7" param { lr_mult: 1 } param { lr_mult: 2 } inner_product_param { num_output: 500 weight_

18、filler { type: "xavier" } bias_filler { type: "constant" } }},更多參考:http://www.cnblogs.com/denny402/p/5072746.html,全連接層是一種特殊的卷積層,只是一種是全連接,一種是局部連接。因此參數(shù)基本是一致的。,神經(jīng)網(wǎng)絡(luò)(NN)或多層感知機(jī)(N

19、LP)就只有全連接層,2、構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu)(其它層),layer { name: "loss" type: "SoftmaxWithLoss" bottom: "fc7" bottom: "label" top: "loss"},Loss層:輸出殘差,layers { bottom: “fc7" top

20、: "prob" name: "prob" type: “Softmax“ include { phase: TEST }},Softmax層:輸出屬于某類的概率,一般用于驗(yàn)證和測試階段,這里的TEST表示驗(yàn)證階段,layer { name: "accuracy" type: "Accuracy" bottom: “fc7

21、" bottom: "label" top: "accuracy" include { phase: TEST }},輸出分類(預(yù)測)精確度,只有驗(yàn)證或測試階段才有,layer { name: "drop7" type: "Dropout" bottom: "fc7" top: &quo

22、t;fc7" dropout_param { dropout_ratio: 0.5 }},Dropout是一個防止過擬合的trick。可以隨機(jī)讓網(wǎng)絡(luò)某些隱含層節(jié)點(diǎn)的權(quán)重不工作,2、構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu)(deploy),Deploy.prototxt文件用于測試階段,測試數(shù)據(jù)沒有標(biāo)簽值,因此數(shù)據(jù)輸入層與其它兩個階段不同。,input: "data"input_shape { dim: 1

23、dim: 3 dim: 42 dim: 42},3、配置參數(shù)(solver.prototxt),更多參考:http://www.cnblogs.com/denny402/p/5074049.html,net: “/home/bnu/fer/train_val.prototxt"test_iter: 113test_interval: 449base_lr: 0.005display: 56max_iter:

24、 26940lr_policy: "step"gamma: 0.1stepsize: 8891momentum: 0.9weight_decay: 0.0005snapshot: 26940snapshot_prefix: "snapshot"solver_mode: GPUsolver_type: SGD,網(wǎng)絡(luò)結(jié)構(gòu)文件驗(yàn)證迭代次數(shù)驗(yàn)證間隔基礎(chǔ)學(xué)習(xí)率屏幕顯示間隔最大訓(xùn)練

25、次數(shù)學(xué)習(xí)率變化規(guī)則學(xué)習(xí)率變化系數(shù)學(xué)習(xí)率變化系數(shù)動量權(quán)值衰減系數(shù)Model保存間隔Model名字前綴硬件配置優(yōu)化方法,Fer庫有28709張訓(xùn)練圖片,7178張驗(yàn)證圖片設(shè)置batch_size=64, 則迭代28709/64=449次才完整訓(xùn)練完一次所有圖片(1 epoch),迭代7178/64=113次才完整驗(yàn)證完一次所有圖片。如果我們想訓(xùn)練60 epoch,則最大訓(xùn)練次數(shù)為60*449=26940,3、配

26、置參數(shù)(solver.prototxt),更多參考:http://www.cnblogs.com/denny402/p/5074049.html,lr_policy可以設(shè)置為下面這些值,相應(yīng)的學(xué)習(xí)率的計(jì)算為:- Fixed:保持base_lr不變.- Step:如果設(shè)置為step,則還需要設(shè)置一個stepsize, 返回 base_lr * gamma ^ (floor(iter / stepsize)),其中

27、 iter表示當(dāng)前的迭代次數(shù)- Exp:返回base_lr * gamma ^ iter, iter為當(dāng)前迭代次數(shù)- Inv:如果設(shè)置為inv,還需要設(shè)置一個power, 返回base_lr * (1 + gamma * iter) ^ (- power)- Multistep:如果設(shè)置為multistep,則還需要設(shè)置一個stepvalue。這個參數(shù)和step很相似,step是均勻等間隔變化,而multis

28、tep則是根據(jù)stepvalue值變化- Poly:學(xué)習(xí)率進(jìn)行多項(xiàng)式誤差, 返回 base_lr (1 - iter/max_iter) ^ (power)- Sigmoid:學(xué)習(xí)率進(jìn)行sigmod衰減,返回 base_lr ( 1/(1 + exp(-gamma * (iter - stepsize)))),4、訓(xùn)練模型,開始運(yùn)行,Solver.prototxt,Train_val.prototxt,Train_db,Val_db

29、,Mean.binaryproto,調(diào)用,調(diào)用,調(diào)用,4、訓(xùn)練模型,其中的有這樣四種:traintestdevice_queryTime對應(yīng)的功能為:train----訓(xùn)練或finetune模型(model),test-----測試模型device_query---顯示gpu信息time-----顯示程序執(zhí)行時間,caffe程序的命令行執(zhí)行格式如下:caffe ,其中的參數(shù)有:-solver

30、 必須,訓(xùn)練配置文件-gpu 可選,指定某塊gpu-snapshot 可選,從快照中恢復(fù)訓(xùn)練-weights 可選,預(yù)訓(xùn)練好的caffemodel -iteration 可選,迭代次數(shù)-model

31、 可選,網(wǎng)絡(luò)結(jié)構(gòu)-sighup_effect 意外中止時的操作-sigint_effect 人工中止時的操作,4、訓(xùn)練模型,例:build/tools/caffe train -solver /home/bnu/fer/solver.prototxtbuild/tools/caffe train –solver=/home/bnu

32、/fer/solver.prototxt,更多參考:http://www.cnblogs.com/denny402/p/5076285.html,5、測試模型,更多參考:http://www.cnblogs.com/denny402/p/5111018.html,經(jīng)過前面幾步操作,我們已經(jīng)訓(xùn)練好了一個caffemodel模型,并生成了一個deploy.prototxt文件,我們就利用這兩個文件來對一個新的圖片進(jìn)行分類預(yù)測。,命令行:

33、 build/examples/cpp_classification/classification.bin \ /home/bnu/fer/deploy.prototxt \ /home/bnu/fer/fer.caffemodel \ /home/bnu/fer/mean.binaryproto \ /home/bnu/fer/class.txt \ /home/bnu/val/005.jpg,第一個參數(shù):depo

34、ly配置文件第二個參數(shù):caffemodel文件第三個參數(shù):均值文件第四個參數(shù):類別名稱文件第五個參數(shù):要分類的圖片,將所有的類別名稱,寫入一個txt文件如(如class.txt),每行一個類別,再執(zhí)行下列命令:,College of Information Science & Technology, Beijing Normal University,www.themegallery.com,Thank You !,w

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論