1 点乘
tensor与标量点乘的结果是每个元素乘以这个标量的值
tensor与行向量点乘的结果是每一列乘以对应的值
tensor与列向量点乘的结果是每一行乘以对应的值
矩阵进行点乘,就是对应位的乘积
点乘还有广播的特点(也是对应位的乘积)
2 mul(与点乘相同)
tensor与标量mul的结果是每个元素乘以这个标量的值
tensor与行向量mul的结果是每一列乘以对应的值
tensor与列向量点乘的结果是每一行乘以对应的值
矩阵进行mul,就是对应位的乘积
、
mul也有广播的特点(也是对应位的乘积)
3 mm 矩阵乘法
4 matmul 矩阵乘法
a,b矩阵同3中的a,b矩阵
矩阵乘法的广播版本
5 bmm batch的乘法
计算两个tensor的矩阵乘法。
对于torch.bmm(a,b)中的两个参数,tensor a 的size为(b,h,w),tensor b的size为(b,w,h)。
注意两个tensor的维度必须为3.
比三维多,比三维少的tensor维度都不行。
二维的情况:
四维的情况
四维矩阵相乘,可以用matmul实现
bmm使用(作用理论上和matmul一样?甚至matmul功能还更强大一些?欢迎讨论!)
6 mv 矩阵和向量的乘法(matrix vector)
a=torch.arange(12).reshape(3,4)
print(a)
'''
tensor([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
'''
b=torch.LongTensor([1,3,5,7])
print(b)
'''
tensor([1, 3, 5, 7])
'''
torch.mv(a,b)
'''
tensor([ 34, 98, 162])
'''