为什么milvus 计算出来的欧式距离和实际不符合?

为什么milvus 计算出来的 l2 和 numpy 计算结果不一样

我本地使用自定义的 l2 函数:

from typing import List
import numpy
def l2(vector1: List[float], vector2: List[float]) -> float:
    vector1 = numpy.array(vector1)
    vector2 = numpy.array(vector2)
    return float(numpy.sqrt(numpy.sum(numpy.square(vector1 - vector2))))

和 milvus 的 "metric_type": 'L2' 返回结果不一样,milvus 返回的 distance 要比我自定义的 l2 结算结果小很多是怎么回事?

搜索 milvus 的方式:

为什么milvus 计算出来的欧式距离和实际不符合?_第1张图片

我自定义的 l2 和 python 的 face_recognition 库的 l2 的计算结果是一样的,所以我觉得是 milvus 的问题,但是我不确定是不是使用 milvus 的时候,哪个参数没有设置好?

为什么milvus 计算出来的欧式距离和实际不符合?_第2张图片

milvus2.2.2


milvus的欧式距离没有开平方


milvu 的 l2 相当于是 numpy.sum(numpy.square(vector1 - vector2)) 是吗?

为什么milvus 计算出来的欧式距离和实际不符合?_第3张图片

我加上 numpy.sqrt 就正常了,但是为什么 milvus 的 l2 默认不开平方呢?

加上 sqrt 就一样了


为什么milvus 计算出来的欧式距离和实际不符合?_第4张图片

为什么milvus 计算出来的欧式距离和实际不符合?_第5张图片

你可能感兴趣的:(python)