http://blog.csdn.net/u011762313/article/details/49851795
#!/usr/bin/env python
# 引入“咖啡”
import caffe
import numpy as np
# 使輸出的參數(shù)完全顯示
# 若沒有這一句,因?yàn)閰?shù)太多,中間會以省略號“……”的形式代替
np.set_printoptions(threshold='nan')
# deploy文件
MODEL_FILE = 'caffe_deploy.prototxt'
# 預(yù)先訓(xùn)練好的caffe模型
PRETRAIN_FILE = 'caffe_iter_10000.caffemodel'
# 保存參數(shù)的文件
params_txt = 'params.txt'
pf = open(params_txt, 'w')
# 讓caffe以測試模式讀取網(wǎng)絡(luò)參數(shù)
net = caffe.Net(MODEL_FILE, PRETRAIN_FILE, caffe.TEST)
# 遍歷每一層
for param_name in net.params.keys():
# 權(quán)重參數(shù)
weight = net.params[param_name][0].data
# 偏置參數(shù)
bias = net.params[param_name][1].data
# 該層在prototxt文件中對應(yīng)“top”的名稱
pf.write(param_name)
pf.write('\n')
# 寫權(quán)重參數(shù)
pf.write('\n' + param_name + '_weight:\n\n')
# 權(quán)重參數(shù)是多維數(shù)組,為了方便輸出,轉(zhuǎn)為單列數(shù)組
weight.shape = (-1, 1)
for w in weight:
pf.write('%ff, ' % w)
# 寫偏置參數(shù)
pf.write('\n\n' + param_name + '_bias:\n\n')
# 偏置參數(shù)是多維數(shù)組,為了方便輸出,轉(zhuǎn)為單列數(shù)組
bias.shape = (-1, 1)
for b in bias:
pf.write('%ff, ' % b)
pf.write('\n\n')
pf.close()