pyfaiss_api
pyfaiss_api copied to clipboard
Facebook faiss相关的python接口
PyFaiss

NOTE:To use this package must ensure has installed faiss lib
Install
- 使用该模块时,在项目的**[requirements.txt]**中添加 并使用命令行安装:
/usr/local/bin/pip install -r requirements.txt
- 或者通过单独安装
Include
-
[train_index]
训练faiss
index模块TrainIndex初始参数详解:class TrainIndex(kwargs):
files: (typelist) 文档向量文件列表,注意:不是文件名,而是文档向量的绝对路径.vpath: 文档向量读取路径,读取的数据应满足一定的前缀或者后缀规则(prefix,suffix).prefix:文档向量文件名前缀,如vector_**.suffix:文档向量文件名后缀,如**_vector.dpath:index训练结果存储路径.iname:index训练结果存储名称,默认为(index.index).direct: 实例化TrainIndex时,直接使用默认提取的向量文件进行训练生成index,并返回.fpath: 安装faiss产生的编译文件(faiss.py, swigfaiss.py, _swigfaiss.so)存储路径,该模块运行必须导入这些相关文件.
-
[faiss_search]
class FaissSearch(kwargs) 两种传入方式,1. 直接传入index; 2. 传入index存储路径:
index:直接传入index文件;ipath:读取index的路径(包含index的文件名,如:/home/xxx/x/x.index);fpath:安装faiss产生的编译文件(faiss.py, swigfaiss.py, _swigfaiss.so)存储路径,该模块运行必须导入这些相关文件.
faiss搜索相关接口
add():add_one():search():search_many():
Basic Usage
>>> from pyfaiss.train_index import TrainIndex
>>> vpath = u'/home/user/'
>>> prefix= u'vector_'
>>> fpath = '/home/user/'
>>> trainer = TrainIndex(vpath=vpath, prefix=prefix, fpath=fpath)
>>> files = trainer.files[:2]
>>> print files
>>> index = trainer.train(files)
>>> print index.ntotal
211897
Faiss install by Docker
# build conda3 image
docker build -f=Dockerfile.conda -t conda3:1.0 .
# build faiss image
docker build -f=Dockerfile.faiss -t conda-faiss:1.0 .