Faiss 是由 Facebook AI Research(FAIR)开发的一个用于有效的相似性搜索(similarity search)和稠密矢量聚类(clustering of dense vectors)的库。它包含了在任何大小的向量集合里进行搜索的算法,向量集合的大小甚至可以达到装不进 RAM。它还包含了用于评估和参数调优的支持代码。Faiss 是用 C ++编写的,带有 Python / numpy 的完整包装。其中最有用的一些算法是在 GPU 上实现的。

针对这个开源的好东西,非常想测试一下,于是从开源地址:https://github.com/facebookresearch/faiss下载了源码进行查看和编译

主要安装过程参照github上faiss的安装文档,这里记录一些安装时遇到的问题。

1.

Faiss is compiled via a Makefile. The system-dependent configuration
of the Makefile is in an include file, makefile.inc. The variables in
makefile.inc must be set by hand.

在faiss-master根目录下复制修改后的makefile.inc文件,其中cuda使用的是8.0版本makefile.inc must be set by hand.

2.To check that the link flags are correct, and verify whether the

implementation uses 32 or 64 bit integers, you can

make tests/test_blas

and run执行test_blas是会打印出error,但是这个程序中直接打印出来的,并没有进行条件判断,因此运行是成功的./tests/test_blas

3. Once the proper BLAS flags are set, the library should compile

smoothly by running
make
A basic usage example is in tests/demo_ivfpq_indexing
tests/demo_ivfpq_indexing

其中对索引在1234-1242的9个向量搜索其最近邻邻居,最近的应该是它本身,distance应该为0,但是由于量化误差,导致距离不为0.

4.

Real-life test
--------------

The following script extends the demo_sift1M test to several types of
indexes:
export PYTHONPATH=. # needed because the script is in a subdirectory
python python/demo_auto_tune.py
执行高亮语句前,需要在faiss-master的根目录下创建tmp目录,不然在最终的写入时会报错。写入tmp中的图片如下:python python/demo_auto_tune.py

再看了下FAISS原理,Faiss 是围绕一种存储了一个向量集的索引类型(index type)而构建的,并且提供了一个使用 L2 和/或点积向量比较在其中进行搜索的函数。一些索引类型是简单的基线,比如精准搜索。大部分可用的索引结构都对应了与以下方面的权衡:

  • 搜索时间

  • 搜索质量

  • 每个索引向量所用的内存

  • 训练时间

  • 无监督学习时对外部数据的需求

facebook faiss的安装测试相关推荐

  1. faiss python安装_如何在ubuntu 18.04上安装faiss GPU

    最近因为要做多路召回的相关研究需要使用faiss进行召回,很多同学困在了安装的流程上.所以想把如何安装流程做个小结. 最简单的方法就是通过Anaconda来进行安装,facebook官方会不定期的推送 ...

  2. PyTorch安装测试训练建自己的数据集

    Pytorch安装测试训练建自己的数据集 前言 一.PyTorch是什么? 二.PyTorch环境搭建 1.设备要求 2.安装Pytorch 3.验证PyTorch 二.CIFAR10测试 1.关于C ...

  3. faiss python安装_faiss 安装

    faiss c++ 源码编译 0.写在前面 参考下述文章的编译安装步骤同时将自己遇到的错误进行梳理解决: https://juejin.im/post/5bed7cebe51d454e5b5f2c23 ...

  4. CMake实战之安装测试和添加环境生成安装包

    1.安装测试 CMake 也可以指定安装规则,以及添加测试.这两个功能分别可以通过在产生 Makefile 后使用 make install 和 make test 来执行.在 GNU Makefil ...

  5. ubuntu-10.04的测试环境 安装测试 Coreseek开源中文检索引擎-Sphinx中文版

    主要参考文档:http://www.coreseek.cn/products-install/install_on_bsd_linux/ 一. 32位版本: coreseek安装需要预装的软件: ap ...

  6. iPhone手机获取uuid 安装测试app

    iPhone手机获取uuid 安装测试app UDID是一种iOS设备的特殊识别码.除序号之外,每台ios装置都另有一组独一无二的号码,我们就称之为识别码( Unique Device Identif ...

  7. Redis集群方案,Codis安装测试

    Redis集群方案,Codis安装测试 1,关于豌豆荚开源的Codis Codis是豌豆荚使用Go和C语言开发.以代理的方式实现的一个Redis分布式集群解决方案,且完全兼容Twemproxy.Twe ...

  8. node.js介绍及Win7环境安装测试(转)

    官网描述: Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable ...

  9. hive安装测试及Hive 元数据的三种存储方式

    一  hive安装测试 1.下载解压 tar -xf hive-x.y.z.tar.gz(本次安装为hive-0.8.1.tar.gz) 将解压后的hive-0.8.1文件放在系统的/home/had ...

最新文章

  1. python命令大全下载-Python pip 常用命令汇总
  2. 稀疏自编码器_基于tensorflow实现稀疏自编码和在推荐中的应用
  3. 无代码iVX编程实现简单 小蜜蜂 经典游戏
  4. LeetCode27——Remove Element(移除数组中指定的元素)
  5. 化繁为简:数据库运维人员应该知道这些...
  6. 设计灵感|各种孟菲斯风格海报,让你眼花缭乱
  7. 在 Linux 的应用中测试中的延时和丢包模拟
  8. steam服务器102修复,分享steam错误代码102的解决方法
  9. jpg转pdf怎么转换免费
  10. 变限积分求导公式总结_变限积分求导的口诀记忆法及应用
  11. 从入门到精通我是这样学习算法的
  12. jira图片_JIRA issue 中的标记语言(Textile)
  13. C语言字母an,易错题之大一C语言英语
  14. JAVA基础学习(二)
  15. 贴吧无耻霸屏技术! 几万阅读量的微信公众号都偷偷的使用它
  16. 扫描识别工具Dynamic Web TWAIN使用教程:移动浏览器捕获(上)
  17. 《写给女人》--[美]桃乐丝·卡耐基
  18. esxi 内核 linux,大娃套小娃系列-ESXI虚拟机安装Debian系统实现Docker容器
  19. 显示器 如何切换输入源
  20. 无线定位技术实验一 TDOA-FDOA联合定位

热门文章

  1. 网狐服务器的基本结构
  2. Android 调整进程的最大fd 数目
  3. 基于Javaweb的小项目(类似于qqzone)1——设计数据库
  4. STM32汉字字模制作详解(OLED实战)
  5. MT【145】不变的平面角
  6. 使用JS模拟键盘、鼠标操作
  7. zip、rar压缩文件密码破解——使用ARCHPR Professional Edition
  8. 程序员调试能力和相关书籍
  9. 用计算机写高中数学程序框图,高中数学教案《程序框图》
  10. directx 9.0c sdk api介绍