浏览代码

fix faiss index (#3241)

ignore only when index < 0, that is -1, means that indexing error.
Tingquan Gao 9 月之前
父节点
当前提交
a5529b7924
共有 1 个文件被更改,包括 5 次插入5 次删除
  1. 5 5
      paddlex/inference/pipelines/components/faisser.py

+ 5 - 5
paddlex/inference/pipelines/components/faisser.py

@@ -149,11 +149,11 @@ class FaissIndexer:
         scores_list, ids_list = self._indexer.search(np.array(feature), topk)
         scores_list, ids_list = self._indexer.search(np.array(feature), topk)
         preds = []
         preds = []
         for scores, ids in zip(scores_list, ids_list):
         for scores, ids in zip(scores_list, ids_list):
-            labels = []
-            for id in ids:
-                if id > 0:
-                    labels.append(self.id_map[id])
-            preds.append({"score": scores, "label": labels})
+            preds.append({"score": [], "label": []})
+            for score, id in zip(scores, ids):
+                if id >= 0:
+                    preds[-1]["score"].append(score)
+                    preds[-1]["label"].append(self.id_map[id])
 
 
         if self.metric_type in FaissBuilder.BINARY_METRIC_TYPE:
         if self.metric_type in FaissBuilder.BINARY_METRIC_TYPE:
             idxs = np.where(scores_list[:, 0] > hamming_radius)[0]
             idxs = np.where(scores_list[:, 0] > hamming_radius)[0]