本文主要是給大家介紹了caffe的python插口形成solver文件詳細說明學習培訓實例,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的不斷進步,盡早漲薪
也有一些基本參數必須計算出來的,并不是亂設定。
solver.prototxt的文件參數設置
caffe在訓練的時候,需要一些參數設置,我們一般將這些參數設置在一個叫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
假定我們會有50000個svm分類器,batch_size為64,即每批號解決64個樣版,那必須迭代更新50000/64=782次才處理完畢一回每一個樣版。我們可以把處理完畢一回每一個樣版,稱作新一代,即epoch。因此,這兒的test_interval設成782,即處理完畢一回每一個訓練數據后,才要進行測試。假如我們想練習100代,就需要設定max_iter為78200.
同樣,若是有10000個檢測樣版,batch_size設成32,那必須迭代更新10000/32=313次才全面地檢測完一回,因此設定test_iter為313.
學習率變化規律我們設置為隨著迭代次數的增加,慢慢變低。總共迭代78200次,我們將變化lr_rate三次,所以stepsize設置為78200/3=26067,即每迭代26067次,我們就降低一次學習率。
生成solver文件
下面是生成solver文件的python代碼,比較簡單:
#-*-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”'#訓練配置文件 sp['test_net']=‘“'+path+'val.prototxt”'#測試配置文件 sp['test_iter']='313'#測試迭代次數 sp['test_interval']='782'#測試間隔 sp['base_lr']='0.001'#基礎學習率 sp['display']='782'#屏幕日志顯示間隔 sp['max_iter']='78200'#最大迭代次數 sp['lr_policy']='“step”'#學習率變化規律 sp['gamma']='0.1'#學習率變化指數 sp['momentum']='0.9'#動量 sp['weight_decay']='0.0005'#權值衰減 sp['stepsize']='26067'#學習率變化頻率 sp['snapshot']='7820'#保存model間隔 sp['snapshot_prefix']=‘"snapshot"'#保存的model前綴 sp['solver_mode']='GPU'#是否使用gpu sp['solver_type']='SGD'#優化算法 def write_solver(): #寫入文件 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()
執行上面的文件,我們就會得到一個solver.prototxt文件,有了這個文件,我們下一步就可以進行訓練了。
當然,如果你覺得上面這種鍵值對的字典方式,寫起來容易出錯,我們也可以使用另外一種比較簡便的方法,沒有引號,不太容易出錯,如下:
簡便的方法
#-*-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)) 訓練模型(training) 如果不進行可視化,只想得到一個最終的訓練model,那么代碼非常簡單,如下: import caffe caffe.set_device(0) caffe.set_mode_gpu() solver=caffe.SGDSolver('/home/xxx/data/solver.prototxt') solver.solve()
綜上所述,這篇文章就給大家介紹完畢了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128776.html
文中主要是給大家介紹了caffe的python插口之手寫數字識別mnist案例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發展,盡早漲薪 論文引言 機器學習第一個案例一般都是是mnist,只需這個案例徹底搞懂了,其他的便是觸類旁通的事了。因為字數緣故,文中不簡單介紹環境變量里邊每一個指標的具體函義,如果要搞明白的,請參考我之前的微博文章: 數據訪問層及主...
此篇文章主要是給大家介紹了caffe的python插口制作loss和accuracy曲線圖實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發展,盡早漲薪 前言 使用python插口來運行caffe程序流程,根本原因是python很容易數據可視化。所以才建議大家在cmd下邊運行python程序流程。如果一定要在cmd下邊運作,不如直接用c++算了。 強烈推...
此篇文章主要是詳細介紹了caffe的python插口形成環境變量學習培訓,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發展,盡早漲薪 caffe是C++語言表達所寫的,可能大家不太熟,所以想要更方便的編程語言來達到。caffe給予matlab接口和python插口,這幾種語言表達就比較簡單,并且很容易開展數據可視化,導致學習培訓更為迅速,了解更加深刻?! ∫荒昵埃以?..
本文主要是給大家介紹了caffe的python插口生成deploy文件學習培訓及其用練習好一點的實體模型(caffemodel)來歸類新的圖片實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發展,盡早漲薪 caffe的python插口生成deploy文件 假如要將練習好一點的實體模型用于檢測新的圖片,那必然必須得一個deploy.prototxt文件,這一...
文中關鍵給大家介紹了Caffe神經網絡solver及其配備詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發展,盡早漲薪 前言 solver算是caffe的最核心的關鍵,它融洽著全部建模運行。caffe程序執行必帶的另一個主要參數就是solver環境變量。運行代碼一般為 #caffetrain--solver=*_slover.prototxt 在Deep...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02