pycaffe获得渐变/权重/偏见

时间:2018-12-10 09:57:05

标签: python deep-learning pycaffe

所以我用

初始化了caffe.Net对象。
network = caffe.Net('path/to/lenet.prototxt', caffe.TEST) 

,我想获取带参数的每一层的激活,权重,偏差,渐变。我目前的方法是进行step(100)进行100次迭代,然后查看每一层:

        for layer_name in network._layer_names: 
            if layer_name in network.params:
                x = layer_name
                output = np.array(network.blobs[x].data)
                weight = np.array(network.params[x][0].data)
                bias = np.array(network.params[x][1].data)

这应该给我激活,每一层的权重和偏差。然后我保存它们。虽然不知道渐变。

这种权重/偏向/激活方法正确吗?

1 个答案:

答案 0 :(得分:0)

使用.diff代替.data

  

实施细节

     

由于我们经常对blob的值和梯度感兴趣,因此blob存储两个块的内存,即数据和diff。前者是我们传递的普通数据,后者是网络计算的梯度。

http://caffe.berkeleyvision.org/tutorial/net_layer_blob.html

请注意,除非您已执行一些培训步骤,否则它们将被初始化为零。