【问题标题】:all pairwise dot product pytorch所有成对点积pytorch
【发布时间】: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


【解决方案1】:

是不是很简单

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)
  • @Ivan 对于二维张量,torch.mmtorch.bmmtorch.dot 之间有区别吗?
  • @Ivan 总是可以使用更通用的torch.tensordot 和我个人最喜欢的torch.einsum...
  • 我相信torch.dot 仅适用于一维张量。至于torch.bmm,它需要一个batch轴,第三个轴。
  • @Ivan 感谢您的纠正。更新了答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-23
  • 1970-01-01
  • 2019-09-14
  • 2020-09-10
  • 2021-04-24
  • 2018-11-20
相关资源
最近更新 更多