【Faiss】indexes IO和index factory(四)

I/O操作

faiss.write_index(index, "index_file.index") #将index保存为index_file.index文件
index = faiss.read_index("index_file.index") #读入index_file.index文件
#完全复制一个index
index_new = faiss.clone_index(index)
index_cpu_to_gpu = faiss.index_cpu_to_gpu()
#index_cpu_to_gpu
#todo

Index factory

用一个字符串构建Index,用逗号分割可以分为3部分:1.前处理部分;2.倒排表(聚类);3.细化后处理部分

在前处理部分(preprocessing):

1.PCA。"PCA64"表示通过PCA将数据维度降为64,"PCAR64"表示增加了随机旋转(random rotation)。
2.OPQ。"OPQ16"表示用OPQMatrix将数组量化为16位(待完善)

倒排表部分(inverted file):

1."IVF4096"表示建立一个大小是4096的倒排表,即聚类为4096类。

细化部分(refinement):

1."Flat"保存完整向量,通过IndexFlat或者IndexIVFFlat实现;
2."PQ16"将向量编码为16byte,通过IndexPQ或者IndexIVFPQ实现;

index = index_factory(128, "PCA80,Flat") # 原始向量128维,用PCA降为80维,然后应用精确搜索
index = index_factory(128, "OPQ16_64,IMI2x8,PQ8+16") #原始向量128维,用OPQ降为64维,分为16类,用2*8bit的倒排多索引,用PQ编码为8byte保存,检索时使用16byte。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值