gpt4 book ai didi

pytorch - 计算多维 torch 张量中向量之间的欧氏距离

转载 作者:行者123 更新时间:2023-12-05 08:47:10 24 4
gpt4 key购买 nike

有一个随机初始化的 torch 张量,形状如下。

输入

tensor1 = torch.rand((4,2,3,100))
tensor2 = torch.rand((4,2,3,100))

tensor1tensor2 分别是 24 100 维向量的 torch 张量。

我想通过获取具有相同索引的两个张量的向量之间的欧氏距离来获得形状为 torch.size([4,2,3]) 的张量。

我使用 dist = torch.nn.functional.pairwise_distance(tensor1, tensor2) 获得我想要的结果。

但是,pairwise_distance 函数计算张量第二维的欧氏距离。所以 dist 形状是 torch.size([4,3,100])

我已经多次执行转置来解决这些问题。我的代码如下。

tensor1 = tensor1.transpose(1,3)
tensor2 = tensor2.transpose(1,3)
dist = torch.nn.functional.pairwise_distance(tensor1, tensor2)
dist = dist.transpose(1,2)

是否有更简单或更容易的方法来获得我想要的结果?

最佳答案

来了

dist = (tensor1 - tensor2).pow(2).sum(3).sqrt()

基本上这就是欧氏距离。

减法 -> 2 的幂 -> 沿着你想要消除的不幸轴求和 -> 平方根

关于pytorch - 计算多维 torch 张量中向量之间的欧氏距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68220457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com