乐趣区

关于python:为什么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 的形式:

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

milvus2.2.2


milvus 的欧式间隔没有开平方


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

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

加上 sqrt 就一样了


退出移动版