呼叫預訓練好的caffemodel,將其權重賦值給自己網路中的對應層。基本思路比較簡單,三步走:
1、載入預定義的caffemodel;
2、載入要訓練的網路;
3、將預訓練model的引數賦值給要訓練的網路。
import caffe
import numpy as np
import math
# 載入預訓練網路
net_ = caffe.net("deploy.prototxt", "***.caffemodel", caffe.test)
caffe.set_device(0)
caffe.set_mode_gpu()
# 設定自己要訓練的網路
solver = caffe.sgdsolver('solver.prototxt')
# 複製對應層的引數給自己的網路
for param_name in net_.params.keys():
print param_name
if len(net_.params[param_name])==1:
solver.net.params[param_name][0].data[...]=net_.params[param_name][0].data[...]
if len(net_.params[param_name])==2:
solver.net.params[param_name][0].data[...]=net_.params[param_name][0].data[...]
solver.net.params[param_name][1].data[...]=net_.params[param_name][1].data[...]
if len(net_.params[param_name])==3:
solver.net.params[param_name][0].data[...]=net_.params[param_name][0].data[...]
solver.net.params[param_name][1].data[...]=net_.params[param_name][1].data[...]
solver.net.params[param_name][2].data[...]=net_.params[param_name][2].data[...]
# 開始訓練
solver.solve()
caffemodel權值視覺化
通過前面的學習,我們已經能夠正常訓練各種資料了。設定好solver.prototxt後,我們可以把訓練好的模型儲存起來,如lenet iter 10000.caffemodel。訓練多少次就自動儲存一下,這個是通過snapshot進行設定的,儲存檔案的路徑及檔名字首是由snapshot prefix...
caffe 檢視caffemodel中的引數與資料
在用caffe訓練完乙個模型之後,我們想更加直觀的檢視這個模型該怎麼做呢?caffe框架訓練出來的caffemodel是乙個類似於黑盒的東西,我們無法直接看到它的本質,需要借助caffe所定義的介面來協助我們。詳細的文件在caffe官網上都有介紹 如果我們用f wx b來表示運算的過程,那w和b就是...
caffemodel的生成和利用
1 呼叫solver.prototxt生成.caffemodel和.solverstate caffe中的bin資料夾裡有caffe.exe,在上級目錄中建立.bat檔案,新增內容並儲存執行 bin caffe.exe train solver examples cifar10 cifar10 qu...