如何提取网络权重?

时间:2016-08-26 14:45:12

标签: caffe extraction

我想用python提取优化网络的权重。我有.caffemodel文件,我已获得net.params,它为我提供了整个网络的参数。问题是当我为第一层调用它时,即net.params['ip2']它给了我:

<caffe._caffe.BlobVec object at 0x7f1cb03c8fa0>

如何获取权重矩阵而不是指针?

2 个答案:

答案 0 :(得分:6)

您必须使用.prototxt文件和.caffemodel文件读取网络。

net = caffe.Net('path/to/conv.prototxt', 'path/to/conv.caffemodel', caffe.TEST)
W = net.params['con_1'][0].data[...]
b = net.params['con_1'][1].data[...]

有关详细信息,请查看此link和此link

答案 1 :(得分:1)

我明白了, 它可以通过weights2 = net.params['ip2'][0].data

获得