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秒

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值