本文主要是給大家介紹了caffe的python插口形成solver文件詳細(xì)說(shuō)明學(xué)習(xí)培訓(xùn)實(shí)例,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的不斷進(jìn)步,盡早漲薪
也有一些基本參數(shù)必須計(jì)算出來(lái)的,并不是亂設(shè)定。
solver.prototxt的文件參數(shù)設(shè)置
caffe在訓(xùn)練的時(shí)候,需要一些參數(shù)設(shè)置,我們一般將這些參數(shù)設(shè)置在一個(gè)叫solver.prototxt的文件里面,如下:
base_lr:0.001
display:782
gamma:0.1
lr_policy:“step”
max_iter:78200
momentum:0.9
snapshot:7820
snapshot_prefix:“snapshot”
solver_mode:GPU
solver_type:SGD
stepsize:26067
test_interval:782
test_iter:313
test_net:“/home/xxx/data/val.prototxt”
train_net:“/home/xxx/data/proto/train.prototxt”
weight_decay:0.0005
假定我們會(huì)有50000個(gè)svm分類(lèi)器,batch_size為64,即每批號(hào)解決64個(gè)樣版,那必須迭代更新50000/64=782次才處理完畢一回每一個(gè)樣版。我們可以把處理完畢一回每一個(gè)樣版,稱(chēng)作新一代,即epoch。因此,這兒的test_interval設(shè)成782,即處理完畢一回每一個(gè)訓(xùn)練數(shù)據(jù)后,才要進(jìn)行測(cè)試。假如我們想練習(xí)100代,就需要設(shè)定max_iter為78200.
同樣,若是有10000個(gè)檢測(cè)樣版,batch_size設(shè)成32,那必須迭代更新10000/32=313次才全面地檢測(cè)完一回,因此設(shè)定test_iter為313.
學(xué)習(xí)率變化規(guī)律我們?cè)O(shè)置為隨著迭代次數(shù)的增加,慢慢變低??偣驳?8200次,我們將變化lr_rate三次,所以stepsize設(shè)置為78200/3=26067,即每迭代26067次,我們就降低一次學(xué)習(xí)率。
生成solver文件
下面是生成solver文件的python代碼,比較簡(jiǎn)單:
#-*-coding:utf-8-*- """ Created on Sun Jul 17 18:20:57 2016 author:root """ path='/home/xxx/data/' solver_file=path+'solver.prototxt'#solver文件保存位置 sp={} sp['train_net']=‘“'+path+'train.prototxt”'#訓(xùn)練配置文件 sp['test_net']=‘“'+path+'val.prototxt”'#測(cè)試配置文件 sp['test_iter']='313'#測(cè)試迭代次數(shù) sp['test_interval']='782'#測(cè)試間隔 sp['base_lr']='0.001'#基礎(chǔ)學(xué)習(xí)率 sp['display']='782'#屏幕日志顯示間隔 sp['max_iter']='78200'#最大迭代次數(shù) sp['lr_policy']='“step”'#學(xué)習(xí)率變化規(guī)律 sp['gamma']='0.1'#學(xué)習(xí)率變化指數(shù) sp['momentum']='0.9'#動(dòng)量 sp['weight_decay']='0.0005'#權(quán)值衰減 sp['stepsize']='26067'#學(xué)習(xí)率變化頻率 sp['snapshot']='7820'#保存model間隔 sp['snapshot_prefix']=‘"snapshot"'#保存的model前綴 sp['solver_mode']='GPU'#是否使用gpu sp['solver_type']='SGD'#優(yōu)化算法 def write_solver(): #寫(xiě)入文件 with open(solver_file,'w')as f: for key,value in sorted(sp.items()): if not(type(value)is str): raise TypeError('All solver parameters must be strings') f.write('%s:%sn'%(key,value)) if __name__=='__main__': write_solver()
執(zhí)行上面的文件,我們就會(huì)得到一個(gè)solver.prototxt文件,有了這個(gè)文件,我們下一步就可以進(jìn)行訓(xùn)練了。
當(dāng)然,如果你覺(jué)得上面這種鍵值對(duì)的字典方式,寫(xiě)起來(lái)容易出錯(cuò),我們也可以使用另外一種比較簡(jiǎn)便的方法,沒(méi)有引號(hào),不太容易出錯(cuò),如下:
簡(jiǎn)便的方法
#-*-coding:utf-8-*- from caffe.proto import caffe_pb2 s=caffe_pb2.SolverParameter() path='/home/xxx/data/' solver_file=path+'solver1.prototxt' s.train_net=path+'train.prototxt' s.test_net.append(path+'val.prototxt') s.test_interval=782 s.test_iter.append(313) s.max_iter=78200 s.base_lr=0.001 s.momentum=0.9 s.weight_decay=5e-4 s.lr_policy='step' s.stepsize=26067 s.gamma=0.1 s.display=782 s.snapshot=7820 s.snapshot_prefix='shapshot' s.type=“SGD” s.solver_mode=caffe_pb2.SolverParameter.GPU with open(solver_file,'w')as f: f.write(str(s)) 訓(xùn)練模型(training) 如果不進(jìn)行可視化,只想得到一個(gè)最終的訓(xùn)練model,那么代碼非常簡(jiǎn)單,如下: import caffe caffe.set_device(0) caffe.set_mode_gpu() solver=caffe.SGDSolver('/home/xxx/data/solver.prototxt') solver.solve()
綜上所述,這篇文章就給大家介紹完畢了,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/128776.html
文中主要是給大家介紹了caffe的python插口之手寫(xiě)數(shù)字識(shí)別mnist案例詳細(xì)說(shuō)明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪 論文引言 機(jī)器學(xué)習(xí)第一個(gè)案例一般都是是mnist,只需這個(gè)案例徹底搞懂了,其他的便是觸類(lèi)旁通的事了。因?yàn)樽謹(jǐn)?shù)緣故,文中不簡(jiǎn)單介紹環(huán)境變量里邊每一個(gè)指標(biāo)的具體函義,如果要搞明白的,請(qǐng)參考我之前的微博文章: 數(shù)據(jù)訪問(wèn)層及主...
此篇文章主要是給大家介紹了caffe的python插口制作loss和accuracy曲線圖實(shí)例詳細(xì)說(shuō)明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪 前言 使用python插口來(lái)運(yùn)行caffe程序流程,根本原因是python很容易數(shù)據(jù)可視化。所以才建議大家在cmd下邊運(yùn)行python程序流程。如果一定要在cmd下邊運(yùn)作,不如直接用c++算了?! ?qiáng)烈推...
此篇文章主要是詳細(xì)介紹了caffe的python插口形成環(huán)境變量學(xué)習(xí)培訓(xùn),感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪 caffe是C++語(yǔ)言表達(dá)所寫(xiě)的,可能大家不太熟,所以想要更方便的編程語(yǔ)言來(lái)達(dá)到。caffe給予matlab接口和python插口,這幾種語(yǔ)言表達(dá)就比較簡(jiǎn)單,并且很容易開(kāi)展數(shù)據(jù)可視化,導(dǎo)致學(xué)習(xí)培訓(xùn)更為迅速,了解更加深刻?! ∫荒昵?,我在...
本文主要是給大家介紹了caffe的python插口生成deploy文件學(xué)習(xí)培訓(xùn)及其用練習(xí)好一點(diǎn)的實(shí)體模型(caffemodel)來(lái)歸類(lèi)新的圖片實(shí)例詳細(xì)說(shuō)明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪 caffe的python插口生成deploy文件 假如要將練習(xí)好一點(diǎn)的實(shí)體模型用于檢測(cè)新的圖片,那必然必須得一個(gè)deploy.prototxt文件,這一...
文中關(guān)鍵給大家介紹了Caffe神經(jīng)網(wǎng)絡(luò)solver及其配備詳細(xì)說(shuō)明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪 前言 solver算是caffe的最核心的關(guān)鍵,它融洽著全部建模運(yùn)行。caffe程序執(zhí)行必帶的另一個(gè)主要參數(shù)就是solver環(huán)境變量。運(yùn)行代碼一般為 #caffetrain--solver=*_slover.prototxt 在Deep...
閱讀 1168·2023-01-14 11:38
閱讀 1160·2023-01-14 11:04
閱讀 986·2023-01-14 10:48
閱讀 2538·2023-01-14 10:34
閱讀 1241·2023-01-14 10:24
閱讀 1123·2023-01-14 10:18
閱讀 736·2023-01-14 10:09
閱讀 818·2023-01-14 10:02