Milvus 中,计算 L2 距离问题

问题描述 投票:0回答:1

我在 2.3 中通过搜索 Milvus 集合返回距离结果。 我使用级别 1 的 L2 度量类型。我通过运行带有平方差异的快速 Python 3 数学来检查距离数字。

数字不一样。

Milvus 返回 0.001152675598859787 数学说 0.00664182539563

milvus
1个回答
0
投票

所有向量都以 float32 值的形式存储在服务器端 Miilvus 的对象存储中。

即使您在代码中使用 float64 值,这些值也会在客户端转换为 float32 值,并通过 grpc 接口作为 float32 值传输。

当您使用“output_fields”返回向量时,milvus 服务器返回 float32 值给客户端,python 客户端会自动将其转换为 float64 值。虽然你看到的是 float64 值,但实际上只有 6 ~ 7 位是精确的。 这样浮点转换就会出现问题。

© www.soinside.com 2019 - 2024. All rights reserved.