为什么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 就一样了