首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Faiss :如何创建大小为1024的10M向量索引

Faiss :如何创建大小为1024的10M向量索引
EN

Stack Overflow用户
提问于 2021-01-20 17:18:08
回答 1查看 836关注 0票数 1

我想要创建一个大小为1024的近10M向量的索引。这是我使用的代码。

代码语言:javascript
复制
import numpy as np
import faiss  
import random                

f = 1024

vectors = []
no_of_vectors=10000000
for k in range(no_of_vectors):
    v = [random.gauss(0, 1) for z in range(f)]
    vectors.append(v)
        
np_vectors = np.array(vectors).astype('float32')

index = faiss.IndexFlatL2(f)  
index.add(np_vectors)                 

faiss.write_index(index, "faiss_index.index")

该代码用于少量的向量。但是,当向量数约为2M时,内存限制就会超过。我使用index.add()而不是附加向量来列表(vectors=[])。但效果不太好。

我想知道如何为大量向量创建索引。

EN

回答 1

Stack Overflow用户

发布于 2022-03-12 08:50:51

如果您想继续使用Faiss,可以选择不同的索引,可能是HNSW或IVFPQ。

参考文献:https://wangzwhu.github.io/home/file/acmmm-t-part3-ann.pdf进入最后一页。

另一种选择是尝试一些分布式解决方案,比如米尔弗斯,它构建了像faiss这样的Ann库。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65814396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档