Numpy 如何修复ValueError:形状为(2,1)的不可广播输出操作数不';与广播形状(2,2)错误不匹配?

Numpy 如何修复ValueError:形状为(2,1)的不可广播输出操作数不';与广播形状(2,2)错误不匹配?,numpy,Numpy,我正在尝试训练一个神经网络,但我在这一点上卡住了,我应该得到和(2,1)数组,但代码一直给我带来一个(2,2)数组 尝试转置矩阵或将(1,)数组设为标量(v[0])都不起作用 这是我遇到问题的代码示例: import numpy as np a = np.array([[0.3],[-0.1]]) b = np.zeros(a.shape) c=np.array([ 0.5249765]) d=np.array([ 0.4850045, 0.45512111]) y = np.array(

我正在尝试训练一个神经网络,但我在这一点上卡住了,我应该得到和(2,1)数组,但代码一直给我带来一个(2,2)数组

尝试转置矩阵或将(1,)数组设为标量(v[0])都不起作用

这是我遇到问题的代码示例:

import numpy as np

a = np.array([[0.3],[-0.1]])
b = np.zeros(a.shape)
c=np.array([ 0.5249765])
d=np.array([ 0.4850045,   0.45512111])
y = np.array([ 0.4])
error = y - c 
f= error * c * (1 - c)

b+=f[0]*d.T
我体验的结果是

b = [-0.0151157 -0.0141844] 
但我一直在

b = [[-0.0151157    -0.0141844]
[-0.0151157 -0.0141844]]
使用

b=f[0]*d.T

否则,您将广播(2,2)数组与(2,)数组的相加

b=f[0]*d.T


相反,否则您将广播(2,2)数组与(2,)数组的相加

您将在一开始构建与
a
形状相同的
b
。如果你想要一个不同的形状,就构造一个。你一开始就用与
a
相同的形状构造
b
。如果你想要一个不同的形状,构造一个。