加减除可以直接使用数学符号

使用示例

1
2
3
4
5
6
a = torch.rand(3,4)
b = torch.rand(4)

print(a+b)
print(a-b)
print(a/b)

输出示例

1
2
3
4
5
6
7
8
9
tensor([[1.5056, 1.3410, 1.7983, 1.5053],
[0.9142, 1.5737, 1.6442, 1.3261],
[1.1492, 1.7107, 1.3224, 1.4069]])
tensor([[ 0.0681, -0.5971, -0.1151, 0.3996],
[-0.5234, -0.3644, -0.2692, 0.2204],
[-0.2883, -0.2274, -0.5910, 0.3012]])
tensor([[1.0947, 0.3838, 0.8797, 1.7228],
[0.2719, 0.6239, 0.7186, 1.3987],
[0.5988, 0.7653, 0.3823, 1.5448]])

矩阵相乘

直接用*是按元素相乘(element-wise),可以使用torch.matmul或者@来进行矩阵乘法(matrix multiplication)。
使用示例

1
2
3
4
5
a = torch.tensor([[2,2],[2,2]])
b = torch.tensor([[2,2],[2,2]])
print(a*b)
print(a@b)
print(torch.matmul(a,b))

输出示例

1
2
3
4
5
6
tensor([[4, 4],
[4, 4]])
tensor([[8, 8],
[8, 8]])
tensor([[8, 8],
[8, 8]])

可以进行降维,例如:

1
2
3
x = torch.rand(4,784) #x是四张照片,每张照片我们用view函数打平
w = torch.rand(512,784)
(x@w.t()).shape
1
torch.Size([4, 512])