numpy - 如何修复 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]]
解决方案
利用
b=f[0]*d.T
相反,否则您正在广播添加一个 (2,2) 数组和一个 (2,) 数组
推荐阅读
- firebase - Firebase:是否可以从用户的电子邮件地址发送电子邮件?
- javascript - UnhandledPromiseRejectionWarning: DiscordAPIError: Missing Permissions
- python - 完整复制一个 div 元素并将其粘贴到 python 上带有 selenium 的文件中
- c# - 用于计算我在 2000 年的年龄的 Wpf 应用程序错误
- git - 是否可以递归地初始化 git 子模块而不更新它们?
- mysql - MySQL SELECT WHERE NOT EXISTS 在同一张表上
- sql - 在 sqlite 中访问关系
- python-3.x - NewConnectionError 安装 scipy
- javascript - How to use Props with Generics with React.memo
- javascript - Is there a LB_SETITEMDATA equivalent for an HTML drop-down list?