Python 对字典中存储的不同形状numpy数组的所有元素求和

Python 对字典中存储的不同形状numpy数组的所有元素求和,python,numpy,Python,Numpy,我有一个名为params的字典,其中包含权重和键,如W1和神经网络的偏差单位。要计算成本函数的正则化,我需要求所有权重之和并忽略偏差。 我是这样做的: layers_weights = filter(lambda str: str[0] == 'W', params) layers_sums = map(lambda key: np.sum(params[key]),weights) total_sum = np.array(list(layers_sums)).sum() 然而,我在pyth

我有一个名为params的字典,其中包含权重和键,如W1和神经网络的偏差单位。要计算成本函数的正则化,我需要求所有权重之和并忽略偏差。 我是这样做的:

layers_weights = filter(lambda str: str[0] == 'W', params)
layers_sums = map(lambda key: np.sum(params[key]),weights)
total_sum = np.array(list(layers_sums)).sum()

然而,我在python方面没有经验,我想知道是否有更高效、更优雅的方法来计算这个。谢谢。

您正在尝试计算体重标准化的分母?使用以下方法可以更有效地求和权重:

total_sum = sum([np.sum(layer_w) for k, layer_w in params.items() if k.startswith('W')])
您可以通过使用for循环使其更具表现力:


谢谢,我需要计算L2正则化。如果将sum更改为np.sum,您的示例将非常有用,否则我将得到广播维度不匹配error@mcstarioni更新。
total_sum = 0
for k, layer_w in params.items():
   if k.startswith('W'):
       total_sum += np.sum(layer_w)