pytorch matmul 高维乘法 解读

二维情况下两个tensor matmul就是矩阵乘法,但是当高维的情况呢?

构建(2,3,2)tensor 和 (2,2,2)tensor 进行相乘

>>> d
tensor([[[ 0.,  1.],
         [ 2.,  3.],
         [ 4.,  5.]],

        [[ 6.,  7.],
         [ 8.,  9.],
         [10., 11.]]])


>>> e
tensor([[[0., 1.],
         [2., 3.]],

        [[4., 5.],
         [6., 7.]]])


>>> f=torch.matmul(d,e)
>>> f
tensor([[[  2.,   3.],
         [  6.,  11.],
         [ 10.,  19.]],

        [[ 66.,  79.],
         [ 86., 103.],
         [106., 127.]]])

 在第一维上,两个tensor对应位置的矩阵相乘。

这是两个tensor第一维相同的情况,如果第一维不相同的话,分成两种情况

1.两个tensor 有某个tensor第一维为1,那么就是用这个tensor的里面的后两维组成的矩阵和另外一个tensor的第一维里面的两个矩阵分别相乘

2.两个tensor里面没有某个tensor 第一维为1,出错。

你可能感兴趣的:(机器&深度初识,算法,线性代数,深度学习,oracle,比特币)