给女朋友做网站 知乎,网站地图模板,国外域名绑定国内服务器,谈谈网站建设创新问题1 dist
1.1 基本使用方法
torch.dist(input, other, p2)
计算两个Tensor之间的p-范数
1.2 主要参数
input输入张量other另一个输入张量p范数
input 和 other的形状需要是可广播的
1.3 举例
import torchxtorch.randn(4)
x
#tensor([ 1.2698, -0.1209, 0.0462, -1.3271…1 dist
1.1 基本使用方法
torch.dist(input, other, p2)
计算两个Tensor之间的p-范数
1.2 主要参数
input输入张量other另一个输入张量p范数
input 和 other的形状需要是可广播的
1.3 举例
import torchxtorch.randn(4)
x
#tensor([ 1.2698, -0.1209, 0.0462, -1.3271])ytorch.randn(4)
y
#tensor([ 0.6590, -0.8689, -1.0083, 0.5733])torch.dist(x,y)
#tensor(2.3783)
ztorch.randn((2,4))
ztensor([[-0.9118, 1.8019, -0.0162, -0.1969],[ 0.2998, -0.1147, 1.1427, -0.9425]])
torch.dist(x,z)
#tensor(3.4683)
2 cdist
2.1 基本使用方法
torch.cdist(x1, x2, p2.0, compute_modeuse_mm_for_euclid_dist_if_necessary)2.2 主要参数
x1B × P × M大小的tensorx2B × R × M 大小的tensorp范数compute_mode指定计算欧几里得距离p2时的方法。有三个选项 use_mm_for_euclid_dist_if_necessary如果 P 25 或 R 25则使用矩阵乘法方法计算欧几里得距离。use_mm_for_euclid_dist总是使用矩阵乘法方法计算欧几里得距离。donot_use_mm_for_euclid_dist永不使用矩阵乘法方法计算欧几里得距离。
返回的大小是B × P × R
如果p∈(0,∞)那么这个方法和scipy.spatial.distance.cdist(input,’minkowski’, pp)是一样的
如果p0那么这个方法和scipy.spatial.distance.cdist(input,‘hamming’)是一样的
2.4 使用矩阵乘法速度变慢 如果数据集较大或者你有访问高性能计算资源如GPU则使用 use_mm_for_euclid_dist 可能会更快。相反如果数据集较小或者你的计算资源有限如只使用CPU那么 donot_use_mm_for_euclid_dist 可能是更好的选择
%%timeit
points1 torch.rand((5120, 2))
points2 torch.rand((5120, 2))
torch.cdist(points1, points2, p2.0, compute_modedonot_use_mm_for_euclid_dist)
#24 ms ± 4.54 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)%%timeit
points1 torch.rand((5120, 2))
points2 torch.rand((5120, 2))
torch.cdist(points1, points2, p2.0)
#36.7 ms ± 2.68 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)