首页 > 解决方案 > 如何修复 ValueError:具有形状 (2,1) 的不可广播输出操作数与广播形状 (2,2) 错误不匹配?

问题描述

我正在尝试训练一个神经网络,但我被困在我应该得到和 (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]]

标签: numpy

解决方案


利用

b=f[0]*d.T

相反,否则您正在广播添加一个 (2,2) 数组和一个 (2,) 数组


推荐阅读