我想获得特定层中描述的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)