我如何做下面的点积最好使用pytorch tensordot()假设我有向量A和向量B:
[a1,a2] . [b1,b2,b3] =
我想得到的结果是:
[ a1 * b1 + a2 * b1, a1 * b2 + a2 * b2, a1 * b3 + a2 * b3]
[
a1 * b1 + a2 * b1,
a1 * b2 + a2 * b2,
a1 * b3 + a2 * b3
]
向量乘向量=点积向量
zzzyeukh1#
统一理论可能很方便:
torch.einsum('i,j->j', torch.Tensor(a), torch.Tensor(b))
zbdgwd5y2#
下面的代码将向量转换为矩阵乘法,并对一行中的所有值求和。
import torchtensor1 = torch.tensor([1,2]).unsqueeze(0)tensor2 = torch.tensor([3,4,5]).unsqueeze(0)result = torch.sum(tensor2.t() @ tensor1, dim=1)print(result)
import torch
tensor1 = torch.tensor([1,2]).unsqueeze(0)
tensor2 = torch.tensor([3,4,5]).unsqueeze(0)
result = torch.sum(tensor2.t() @ tensor1, dim=1)
print(result)
结果:
tensor([ 9, 12, 15])
2条答案
按热度按时间zzzyeukh1#
统一理论可能很方便:
zbdgwd5y2#
下面的代码将向量转换为矩阵乘法,并对一行中的所有值求和。
结果: