*
若两个tensor的维度相同,*符号表示对应元素相乘。例如:
1 2 3 4 5
   | a = torch.Tensor([[1, 2, 3], [1, 2, 3]]).view(-1, 2) b = torch.Tensor([[3, 2, 1], [3, 2, 1]]).view(-1, 2) print('a:',a) print('b:',b) print('a*b:',a*b)
   | 
运行结果
1 2 3 4 5 6 7 8 9
   | a: tensor([[1., 2.],             [3., 1.],             [2., 3.]]) b: tensor([[3., 2.],             [1., 3.],             [2., 1.]]) a*b: tensor([[3., 4.],                 [3., 3.],                 [4., 3.]])
   | 
若两个tensor的维度不相同,则将某一个tensor扩展(复制)成相同的维度,然后*表示对应位置相乘。例如:
1 2 3 4 5
   | a = torch.Tensor([[1, 2, 3], [1, 2, 3]]).view(-1, 2) b = torch.Tensor([[3, 2, 1]]).view(3, -1) print('a:',a) print('b:',b) print('a*b:',a*b)
   | 
运行结果:
1 2 3 4 5 6 7 8 9
   | a: tensor([[1., 2.],             [3., 1.],             [2., 3.]]) b: tensor([[3.],             [2.],               [1.]]) a*b: tensor([[3., 6.],                [6., 2.],                [2., 3.]])
   | 
mul
对应点相乘,x.mul(y) ,即点乘操作,点乘不求和操作,又可以叫作Hadamard product;点乘再求和,即为卷积
1 2 3 4 5 6 7 8 9 10 11 12 13 14
   | data = [[1,2], [3,4], [5, 6]] tensor = torch.FloatTensor(data)   tensor Out[27]:  tensor([[ 1.,  2.],         [ 3.,  4.],         [ 5.,  6.]])   tensor.mul(tensor) Out[28]:  tensor([[  1.,   4.],         [  9.,  16.],         [ 25.,  36.]])
   | 
mm
矩阵相乘,x.mm(y), 矩阵大小需满足: (i, n)x(n, j)
1 2 3 4 5 6 7 8 9 10 11
   | tensor Out[31]:  tensor([[ 1.,  2.],         [ 3.,  4.],         [ 5.,  6.]])   tensor.mm(tensor.t())   Out[30]:  tensor([[  5.,  11.,  17.],         [ 11.,  25.,  39.],         [ 17.,  39.,  61.]])
   | 
参考
PyTorch 对应点相乘、矩阵相乘