1. 程式人生 > >python實現對caffe的訓練,初始權重訓練和繼續訓練

python實現對caffe的訓練,初始權重訓練和繼續訓練

1、直接訓練

直接訓練比較簡單,幾行程式碼就可以搞定

 import caffe
 caffe.set_device(0)
 caffe.set_mode_gpu()
 #solver root
caffe_root = 'D:/caffe-ssd-microsoft/caffe-ssd-microsoft/' 
solver = caffe.SGDSolver(caffe_root +'../solver.prototxt')
solver.solve() # 直接訓練,直接得到一個最終的訓練model

2、初始權重訓練

如果想在別人的模型上面微調,增加一個solver.net.copy_from函式即可

 import caffe
caffe.set_device(0)
caffe.set_mode_gpu()
#solver root
caffe_root = 'D:/caffe-ssd-microsoft/caffe-ssd-microsoft/' 
solver = caffe.SGDSolver(caffe_root +'../solver.prototxt')
#預設權重,或者從已經訓練好的檔案中重新開始訓練
solver.net.copy_from(caffe_root +'your.caffemodel')
solver.solve() # 直接訓練,直接得到一個最終的訓練model

3、繼續訓練

如果已經訓練到了一半暫停了,想繼續訓練,就增加一個solver.restore函式

import caffe
caffe.set_device(0)
caffe.set_mode_gpu()
#solver root
caffe_root = 'D:/caffe-ssd-microsoft/caffe-ssd-microsoft/' 
solver = caffe.SGDSolver(caffe_root +'.../solver.prototxt')

#載入已訓練的模型,繼續訓練的時候可以使用這個
solver.restore(caffe_root +'your.solverstate')

solver.solve() # 直接訓練,直接得到一個最終的訓練model