python - 列 2D 张量乘以行 2D 张量等于 3d pytorch 张量
问题描述
给定 PyTorch A
(a X m) 和(m X b) 中的 2 个二维张量 (a X m) 和B
(m X b),是否有任何有效的方法来获得一个张量C
(m X a X b),其中C[i,:,:] = A[:,i] @ B[i,:]
?
在这里,我将举一个问题的例子:
A = torch.FloatTensor([[1,2],[3,4]])
B = torch.FloatTensor([[1,2,3],[4,5,6]])
结果:
C = torch.FloatTensor([[[1,2,3],[3,6,9]],[[12,15,18],[16,20,24]]])
我已经使用for循环完成了它。但是,它的效率非常低。
解决方案
C = torch.einsum('im,mj->mij', A, B)
推荐阅读
- java - Travis 运行检查权限被拒绝错误解决办法?
- css - 在 CSS 中为边框底部添加偏移量
- r - ggplot2 多个图:一个图上的大标签?
- java - 使用带有多个可能的“where”语句的 java 查询 mysql
- python - 将括号附加到熊猫中的字母和日文字符串的组合
- c# - 无法在 WPF 中以编程方式数据绑定 3 个对象
- random - C#如何生成随机高或低数字,并且每个后续数字都基于最后一个随机生成的数字
- ssh - 从连接的服务器获取本地设备 IP
- angular - 通过 POST 方法在 Angular 中重定向页面?
- windows - 如何在 Windows 10 操作系统中编写 Python 3 脚本来执行 .\activate?