為什麼milvus 計算出來的歐式距離和實際不符合?

ponponon發表於2023-04-21

為什麼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 的方式:

圖片.png

我自定義的 l2 和 python 的 face_recognition 庫的 l2 的計算結果是一樣的,所以我覺得是 milvus 的問題,但是我不確定是不是使用 milvus 的時候,哪個引數沒有設定好?

圖片.png

milvus2.2.2


milvus的歐式距離沒有開平方


milvu 的 l2 相當於是 numpy.sum(numpy.square(vector1 - vector2)) 是嗎?

圖片.png

我加上 numpy.sqrt 就正常了,但是為什麼 milvus 的 l2 預設不開平方呢?

加上 sqrt 就一樣了


圖片.png

圖片.png

相關文章