如何提取网络权重?

How to extract weights of network?

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

<caffe._caffe.BlobVec object at 0x7f1cb03c8fa0>

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

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

获得

您必须使用 .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 and this link 了解更多信息。