1、转置
1 2 3 4 |
import torch a = torch.arange(6).reshape(2, 3) #对a进行转置 torch.einsum('ij->ji', [a]) |
2、沿行或列求和
1 2 3 |
a = torch.arange(6).reshape(2, 3) #对矩阵a进行求和 torch.einsum('ij->', [a]) |
3、按列求和
1 2 |
#对矩阵按列求和,即对下标j进行求和 torch.einsum('ij->j', [a]) |
4、向量与矩阵相乘
1 2 3 4 |
a = torch.arange(6).reshape(2, 3) b = torch.arange(3) #a与b的内积,a乘以b的转置 torch.einsum('ik,k->i', [a, b]) |
5、矩阵与矩阵相乘
1 2 3 |
a = torch.arange(6).reshape(2, 3) b = torch.arange(15).reshape(3, 5) torch.einsum('ik,kj->ij', [a, b]) |
6、阿达马积(遂元遂元乘积)
同阶矩阵相乘
1 2 3 |
a = torch.arange(6).reshape(2, 3) b = torch.arange(6,12).reshape(2, 3) torch.einsum('ij,ij->ij', [a, b]) |
7、矩阵批量相乘
1 2 3 |
a = torch.randn(3,2,5) b = torch.randn(3,5,3) torch.einsum('ijk,ikl->ijl', [a, b]) |
测试表格
字段1 | 字段2 | 字段3 | 字段4 | 字段5 |
---|---|---|---|---|
中国 | python3.8 | tensorflow2 | pytorch1.9 | |
Row:2 Cell:1 | Row:2 Cell:2 | Row:2 Cell:3 | Row:2 Cell:4 | Row:2 Cell:5 |
Row:3 Cell:1 | Row:3 Cell:2 | Row:3 Cell:3 | Row:3 Cell:4 | Row:3 Cell:5 |
Row:4 Cell:1 | Row:4 Cell:2 | Row:4 Cell:3 | Row:4 Cell:4 | Row:4 Cell:5 |
Row:5 Cell:1 | Row:5 Cell:2 | Row:5 Cell:3 | Row:5 Cell:4 | Row:5 Cell:5 |
Row:6 Cell:1 | Row:6 Cell:2 | Row:6 Cell:3 | Row:6 Cell:4 | Row:6 Cell:5 |