如何使用Pycaffe显示所有激活的和未激活的(死的)神经元?

时间:2017-09-02 16:53:56

标签: caffe pycaffe

我想获得特定层中描述的here死神经元的百分比,然后绘制它们,以便我可以知道大多数神经元是否正在学习。
我尝试了以下代码段:

feat = net.blobs['fc'].data[0]  

这适用于FC图层,但对于Conv图层,我面对每个神经元的特征贴图,如果我展平,那也无济于事,因为我想绘制每个神经元的状态(死了或不死)。
我该怎么办?总结每个功能映射中的所有功能,如下所示?

n=np.sum(feat,axis=1).sum(1) 

这是正确的方法吗?

顺便说一下,这是我为此写的最新代码:

def Show_all_dead_neurons(net):
    neurons=[]
    for layer_name, blob in net.blobs.items():
        feat = net.blobs[layer_name].data[0]
        if((len(feat.shape) <3) or ("pool" in layer_name)):
            continue;
        print(layer_name + '\t' + str(blob.data[0].shape))    
        n = np.sum(feat,axis=1).sum(1)
        x = n[n == 0]
        print(len(x))
        neurons.append(x)
    s = 0
    for i in range(len(neurons)):
        s += np.sum(len(neurons[i]))
    print('all dead neurons:',s)

0 个答案:

没有答案