Numpy:将矩阵与 3d 张量相乘 -- 建议
我有一个形状为 MxN
的矩阵 P
和一个形状为 KxNxR
的 3d 张量 T
。我想将 P
与 T
中的每个 NxR
矩阵相乘,得到 KxMxR
3d 张量。
P.dot(T).transpose(1,0,2)
给出所需的结果。对于这个问题是否有一个更好的解决方案(即摆脱转置
)?这一定是一个非常常见的操作,所以我认为其他人已经找到了不同的方法,例如使用tensordot(我尝试过但未能获得所需的结果)。意见/意见将受到高度赞赏!
I have a matrix P
with shape MxN
and a 3d tensor T
with shape KxNxR
. I want to multiply P
with every NxR
matrix in T
, resulting in a KxMxR
3d tensor.
P.dot(T).transpose(1,0,2)
gives the desired result. Is there a nicer solution (i.e. getting rid of transpose
) to this problem? This must be quite a common operation, so I assume, others have found different approaches, e.g. using tensordot
(which I tried but failed to get the desired result). Opinions/Views would be highly appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您还可以使用爱因斯坦求和符号:
它应该给出与以下相同的结果:
You could also use Einstein summation notation:
which should give you the same results as: