Caffe學習:使用pycaffe讀取caffemodel引數
阿新 • • 發佈:2019-01-02
#!/usr/bin/env python # 引入“咖啡” import caffe import numpy as np # 使輸出的引數完全顯示 # 若沒有這一句,因為引數太多,中間會以省略號“……”的形式代替 np.set_printoptions(threshold='nan') # deploy檔案 MODEL_FILE = 'caffe_deploy.prototxt' # 預先訓練好的caffe模型 PRETRAIN_FILE = 'caffe_iter_10000.caffemodel' # 儲存引數的檔案 params_txt = 'params.txt' pf = open(params_txt, 'w') # 讓caffe以測試模式讀取網路引數 net = caffe.Net(MODEL_FILE, PRETRAIN_FILE, caffe.TEST) # 遍歷每一層 for param_name in net.params.keys(): # 權重引數 weight = net.params[param_name][0].data # 偏置引數 bias = net.params[param_name][1].data # 該層在prototxt檔案中對應“top”的名稱 pf.write(param_name) pf.write('\n') # 寫權重引數 pf.write('\n' + param_name + '_weight:\n\n') # 權重引數是多維陣列,為了方便輸出,轉為單列陣列 weight.shape = (-1, 1) for w in weight: pf.write('%ff, ' % w) # 寫偏置引數 pf.write('\n\n' + param_name + '_bias:\n\n') # 偏置引數是多維陣列,為了方便輸出,轉為單列陣列 bias.shape = (-1, 1) for b in bias: pf.write('%ff, ' % b) pf.write('\n\n') pf.close