标签:broadcast operands 错误 could 矩阵 shapes 160000 乘法
python日常错误:
错误1:
operands could not be broadcast together with shapes (160000,4) (4,4)
操作数不能与形状(160000,4)(4,4)一起广播
错误代码:
对,你没看错,仅仅就是这一行
分析:
这里的变量a,b,c,d不是一个数,而是一群数,也就是每一个都代表着一个矩阵,之所以不能直接矩阵相乘,是因为python的“*”,如果是矩阵相乘的话,必须是行列数一致,然后对应元素相乘
如果想实现矩阵乘法的话,需要用到numpy.dot()函数,numpy的点积函数
修改后:
仍然是错误的
错误2:
operands could not be broadcast together with shapes (160000,4) (4,4)
分析:
虽然错误一致,但是错误的原因不同,有时候错误发生的原因却是不一样的
这里已经用到点积了,去计算矩阵乘法,为什么还会出现错误呢?
因为c的shape是(160000,4) 而矩阵乘法得到的px是(4,4)的,与矩阵乘法一样,“/”依旧不能进行矩阵除法,也就是说(160000,4) 和(4,4)的矩阵不能直接相除
其实错误的原因在第一行,a矩阵是(4,1)的,b矩阵是(1,4)的,正确的方式应该是
把a,b交换位置,矩阵乘法后得到(1,1)的矩阵或者说一个数,此时便可以直接相除了
标签:broadcast,operands,错误,could,矩阵,shapes,160000,乘法 来源: https://www.cnblogs.com/zyssj/p/16695156.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。