caffemodel為模型檔案,存的是網路裡各層的參數,也就是net.params(沒net.blobs),在測試時使用的。
solverstate為中間狀態檔案,比.caffemodel儲存了更多當時資訊,如迭帶次數,當時的數據(net.blobs),learning rate等,作為要恢復訓練用的。如果跑訓練發生意外暫停時,可以利用solverstate恢復該次迭帶的資訊,繼續訓練下去。
在python interface
如果我們用
solver.net.copy_from('***.caffemodel')這只會複製對應prototxt裡同樣名稱layer的參數,而其他訓練的參數都會依照solver.prototxt裡的設定,通常在fine-tune時會這樣用。
如果是想恢復訓練的話,可以利用
solver.restore('***.solverstate')這裡就不需要再solver.net.copy_from().
如果需要重新恢復訓練的話,兩個檔案.solverstate跟.caffemodel都需要同時存在。
參考
https://github.com/BVLC/caffe/issues/3651
回答中有較詳細對兩者的描述
http://www.cnblogs.com/denny402/p/5103425.html
描述了.caffemodel跟.solverstate,並提到caffemodel裡存了各層的參數,因此可以拿來做可視化用
沒有留言:
張貼留言