sim = torch.dist(tensor1, tensor2, p=2)
时间: 2024-10-10 10:03:57 浏览: 28
PyTorch中torch.tensor与torch.Tensor的区别详解
当你在PyTorch中使用`torch.dist()`函数计算两个张量(tensor1 和 tensor2)的距离时,`p=2` 参数指定了使用欧氏距离(Euclidean Distance)。欧氏距离是一种常用的几何距离度量,它计算的是两点之间在各个维度上差值平方的和的平方根。
这个函数的具体作用是计算每个元素对之间的平方差,然后求和并开方。如果张量是一维的,则直接计算;如果是二维或多维的,会按照列(最后一个维度)逐元素进行计算。例如,如果你有两个形状相同的张量,如 `(n, d)`,那么 `sim` 将是一个一维张量,包含每一对样本的欧氏距离。
以下是计算过程的一个简化版示例:
```python
import torch
# 假设 tensor1 和 tensor2 都是 (3, 2) 形状的张量
tensor1 = torch.tensor([[1, 2], [3, 4], [5, 6]])
tensor2 = torch.tensor([[7, 8], [9, 10], [11, 12]])
# 使用 p=2 计算欧氏距离
sim = torch.dist(tensor1, tensor2, p=2)
print(sim) # 输出每个样本对的距离,结果类似:[10.0, 10.0, 10.0] 或 [14.14213562, 14.14213562, 14.14213562]
```
阅读全文