Ale*_*uya 5 python pytorch pairwise-distance
如果这是一个幼稚的问题,请原谅我,我的测试代码是这样的:
import torch
from torch.nn.modules.distance import PairwiseDistance
list_1 = [[1., 1.,],[1., 1.]]
list_2 = [[1., 1.,],[2., 1.]]
mtrxA=torch.tensor(list_1)
mtrxB=torch.tensor(list_2)
print "A-B distance :",PairwiseDistance(2).forward(mtrxA, mtrxB)
print "A 'self' distance:",PairwiseDistance(2).forward(mtrxA, mtrxA)
print "B 'self' distance:",PairwiseDistance(2).forward(mtrxB, mtrxB)
Run Code Online (Sandbox Code Playgroud)
结果:
A-B distance : tensor([1.4142e-06, 1.0000e+00])
A 'self' distance: tensor([1.4142e-06, 1.4142e-06])
B 'self' distance: tensor([1.4142e-06, 1.4142e-06])
Run Code Online (Sandbox Code Playgroud)
问题是:
pytorch 如何计算成对距离?是计算行向量距离吗?
为什么“自我”距离不是 0?
更新
将 list_1 和 list_2 更改为以下内容后:
list_1 = [[1., 1.,1.,],[1., 1.,1.,]]
list_2 = [[1., 1.,1.,],[2., 1.,1.,]]
Run Code Online (Sandbox Code Playgroud)
结果变成:
A-B distance : tensor([1.7321e-06, 1.0000e+00])
A 'self' distance: tensor([1.7321e-06, 1.7321e-06])
B 'self' distance: tensor([1.7321e-06, 1.7321e-06])
Run Code Online (Sandbox Code Playgroud)
查看 的文档nn.PairWiseDistance,pytorch 需要两个N维度D向量的 2D 张量,并计算这对之间的距离N。
为什么“自身”距离不为零 - 可能是因为浮点精度以及因为eps = 1e-6.
| 归档时间: |
|
| 查看次数: |
10258 次 |
| 最近记录: |