【发布时间】:2021-05-02 06:42:43
【问题描述】:
Pytorch 中是否有一个内置函数可以有效地计算两个张量的所有成对点积?
例如
输入-张量A(形状NxD)
张量B(形状NxD)
输出-张量C(形状NxN)使得C_i,j = torch.dot(A_i, B_j)?
【问题讨论】:
标签: pytorch tensor dot-product
Pytorch 中是否有一个内置函数可以有效地计算两个张量的所有成对点积?
例如
输入-张量A(形状NxD)
张量B(形状NxD)
输出-张量C(形状NxN)使得C_i,j = torch.dot(A_i, B_j)?
【问题讨论】:
标签: pytorch tensor dot-product
是不是很简单
C = torch.mm(A, B.T) # same as C = A @ B.T
顺便说一句,
一个非常灵活的矩阵/向量/张量点积工具是torch.einsum:
C = torch.einsum('id,jd->ij', A, B)
【讨论】:
torch.mm(A, B.T)?
torch.mm、torch.bmm 和 torch.dot 之间有区别吗?
torch.tensordot 和我个人最喜欢的torch.einsum...
torch.dot 仅适用于一维张量。至于torch.bmm,它需要一个batch轴,即第三个轴。