Numpy 计算get_weights()输出中非零元素数的最快方法

Numpy 计算get_weights()输出中非零元素数的最快方法,numpy,keras,neural-network,Numpy,Keras,Neural Network,我想计算神经网络权重中非零值的数量 我尝试了以下代码,但得到了一个ValueError。这可能是因为每个阵列的形状不同 h = model.get_weights() # return a list of numpy arrays merged_h = [] for l in h: merged_h += l nzcounts = np.count_nonzero(merged_h) ValueError: operands could not be broadcast togeth

我想计算神经网络权重中非零值的数量

我尝试了以下代码,但得到了一个ValueError。这可能是因为每个阵列的形状不同

h = model.get_weights()  # return a list of numpy arrays
merged_h = []
for l in h:
    merged_h += l
nzcounts = np.count_nonzero(merged_h)

ValueError: operands could not be broadcast together with shapes (0,) (3,3,3,32) 

我想知道是否有其他方法可以计算
get_weights()
输出中非零元素的数量?谢谢大家!

本质上,问题在于
model.get\u weights()
返回数组列表。我认为最简单的方法是将
np.count\u nonzero()
分别应用于这些数组中的每一个,然后对结果求和

np.sum([np.count\u模型中x的非零(x)。获取权重()