faiss学习(一)环境搭建以及安装

注意事项

1.python版本不得高于等于3.7
python降版本办法:如果安装了anaconda可以使用命令“conda install python=3.6”进行降级
2.有些示例需要安装其他依赖包,当出现类似“ModuleNotFoundError: No module named 'lala'”的错误提示时,百度搜索安装命令安装依赖包即可

安装

Faiss只能在Linux和mac OS中运行,这里介绍在Ubuntu16版本中的安装方法,适用于大部分linux系统

1.安装anaconda

在安装过程中注意安装在了哪一个用户的用户目录下,一般使用root用户权限安装为佳

wget https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh
bash Anaconda3-5.3.0-Linux-x86_64.sh -b
# 安装完成之后手动添加环境变量
# 编辑($HOME为你的安装路径)
vi $HOME/.bashrc
# 添加
export PATH="$HOME/anaconda3/bin:$PATH"
# 启用
source $HOME/.bashrc
检查是否安装成功
conda list

2.安装Faiss-cpu /Faiss-gpu

# 依次输入以下命令
conda install faiss-cpu -c pytorch
conda install faiss-gpu -c pytorch # [DEFAULT]For CUDA8.0
conda install faiss-gpu cuda90 -c pytorch # For CUDA9.0
conda install faiss-gpu cuda91 -c pytorch # For CUDA9.1

3.检验

打开python解释器,输入以下命令
import faiss
没有报错则说明安装成功

4.测试:运行官方demo

#官方demo解析
import numpy as np  #引入包
d = 128                           # 数据维度
nb = 100000                      # 数据数量
nq = 10000                       # 查询数据数量
np.random.seed(1234)             
xb = np.random.random((nb, d)).astype('float32')  #使用随机数创建数据
xb[:, 0] += np.arange(nb) / 1000.
xq = np.random.random((nq, d)).astype('float32')  #使用随机数创建查询数据
xq[:, 0] += np.arange(nq) / 1000.

import faiss                   # 引入faiss
index = faiss.IndexFlatL2(d)   # 创建索引
print(index.is_trained)  #索引是否需要训练
index.add(xb)                  # 向索引中添加数据
print(index.ntotal)  #索引中向量的数量

k = 4                          # 想要查询四条最相似的数据
D, I = index.search(xb[:5], k) # 查询数据中的五条,获取4条数据
print(I)  #相似向量的ID
print(D)  #与相似向量的距离
D, I = index.search(xq, k)     # 搜索10000条测试数据
print(I[:5]) 
print(I[-5:])

使用官方demo进行暴力检索测试:

虚拟机内存:2G
维度:128
随机数据数量:200万
查询数据数量:5条
数据生成以及插入索引使用时间:约3-5分钟
查询时间:8秒

猜你喜欢

转载自blog.csdn.net/qq_24127447/article/details/87803210