Numpy 是否有一种矢量化的方法来创建矩阵,其中每个元素都是矩阵的逐行点积?

Numpy 是否有一种矢量化的方法来创建矩阵,其中每个元素都是矩阵的逐行点积?,numpy,matrix,pytorch,vectorization,Numpy,Matrix,Pytorch,Vectorization,抱歉标题含糊不清,我花了一些时间重新措辞,但不能很好地理解 例如,我有一个2*3的Pytorch张量矩阵 test = torch.tensor([[1, 10, 100], [2, 20, 200]]) 我想要的是一个最终的矩阵 torch.tensor([10101, 20202], [20202, 40404]) 我们可以看到,(0,0)位置是第一行与自身的点积,(0,1)(1,0)是第一行与第二行的点积,(1,1)第二

抱歉标题含糊不清,我花了一些时间重新措辞,但不能很好地理解

例如,我有一个2*3的Pytorch张量矩阵

test = torch.tensor([[1, 10, 100],
                    [2, 20, 200]])
我想要的是一个最终的矩阵

torch.tensor([10101, 20202],
             [20202, 40404])
我们可以看到,(0,0)位置是第一行与自身的点积,(0,1)(1,0)是第一行与第二行的点积,(1,1)第二行与自身的点积


谢谢

您是否在寻找矩阵的点积及其转置

test.matmul(test.transpose(0,1))
print(test)
>>> tensor([[10101, 20202],
            [20202, 40404]])

您可以执行矩阵乘法:

test @ test.T
或一个
火炬.einsum

torch.einsum('ij,kj->ik', test, test)