faiss

个人理解:

https://github.com/facebookresearch/faiss 上把代码clone下来,make编译

我们将CNN中经过若干个卷积/激励/池化层后得到的激活映射(向量形式)存储到硬盘上,

Faiss是一个高效的相似性搜索和密集向量聚类的库。它包含了搜索任意大小的向量集合的算法,这些算法可能不适合RAM。它还包含用于评估和参数优化的支持代码。Faiss是用c++编写的,带有Python/numpy的完整包装。一些最有用的算法是在GPU上实现的。它是由Facebook人工智能研究开发的。

稀疏向量:0和1表示的向量

密集向量:实数表示的向量

介绍

Faiss包含了几种相似搜索的方法。它假设实例被表示为向量,并由一个整数来标识,并且向量可以与L2距离或点乘积进行比较。与查询向量相似的向量是那些具有最低L2距离或与查询向量有最高的点积的向量。它也支持余弦相似,因为这是标准化向量上的点积。

大多数的方法,像那些基于二进制矢量和压缩量化码的方法,仅仅使用矢量的压缩表示,不需要保留原向量。这通常以不那么精确的搜索为代价,但这些方法可以在单个服务器上的主存中扩展到数十亿个向量。

GPU实现可以接受CPU或GPU内存的输入。在带有GPU的服务器上,GPU索引可以使用drop-in替换CPU索引(例如,用GpuIndexFlatL2替换IndexFlatL2),并自动处理GPU内存的副本。但是如果输入和输出都驻留在GPU上,结果将会更快。支持单一和多gpu的使用。

建筑

库主要是在c++中实现的,通过CUDA提供可选的GPU支持,以及一个可选的Python接口。CPU版本需要一个BLAS库。它使用Makefile编译,并可以在docker映像中打包。看到安装。

工作方式

Faiss是围绕一个索引类型构建的,它存储了一组向量,并提供了一个函数,用L2和/或点积向量比较来搜索它们。有些索引类型是简单的基线,例如精确搜索。大多数可用的索引结构对应于各种各样的权衡。

搜索时间

搜索质量

每个索引向量使用的内存。

培训时间

非监督培训需要外部数据。

可选的GPU实现提供了可能的(截至2017年3月)最快的精确和近似(压缩域)最近邻搜索实现的高维向量,最快的劳埃德的k-means,和最快的小k选择算法已知。这里详细介绍了实现。

完整的文档做

以下为文件的入口点:

完整的文档,包括教程,FAQ和故障排除部分可以在wiki页面上找到。

doxygen文档提供了每个类的信息。

为了复制我们的研究论文,多义代码和十亿级相似搜索与gpu,请参考基准的README。

加入社区

公开讨论做或问题,有一个Facebook公开讨论组在https://www.facebook.com/groups/faissusers/

我们监视存储库的问题页面。你可以报告错误,提出问题,等等。

facebook 相似性搜索库 faiss的更多相关文章

  1. 揭开Faiss的面纱 探究Facebook相似性搜索工具的原理

    https://www.leiphone.com/news/201703/84gDbSOgJcxiC3DW.html 本月初雷锋网报道,Facebook 开源了 AI 相似性搜索工具 Faiss.而在 ...

  2. Faiss向量相似性搜索

    Faiss 快速入门(1) Faiss 更快的索引(2) Faiss低内存占用(3) Faiss 构建: clustering, PCA, quantization(4) 如何选择Faiss索引(5)

  3. [原创]CentOS6.4编译安装Facebook的folly库(gcc4.8.1boost1.5.3)

      Folly: Facebook Open-souce LibrarY,Facebook开源的一个基础组件库,据说在大规模的场景中性能较高.目前因为自己负责的系统有几个地方性能较差,因此特意找来看看 ...

  4. 漫步Facebook开源C++库Folly之string类设计(散列、字符串、向量、内存分配、位处理等,小部分是对现有标准库和Boost库功能上的补充,大部分都是基于性能的需求而“重新制造轮子”)

    就在近日,Facebook宣布开源了内部使用的C++底层库,总称folly,包括散列.字符串.向量.内存分配.位处理等,以满足大规模高性能的需求. 这里是folly的github地址:https:// ...

  5. Facebook React.js库 入门实例教程

    作者: 阮一峰 日期: 2015年3月31日 现在最热门的前端框架,毫无疑问是 React . 上周,基于 React 的 React Native 发布,结果一天之内,就获得了 5000 颗星,受瞩 ...

  6. 96、facebook Fresco框架库源使用基础

    开源项目链接 facebook Fresco仓库:git clone https://github.com/facebook/fresco facebook Fresco主页:“>http:// ...

  7. ios paper for facebook 使用第三方库

    facebook paper使用的第三方库 Facebook Paper使用的第三方库 第三方库名 简介 链接 ACE code editor https://github.com/ajaxorg/a ...

  8. 96、facebook Fresco框架库源使用(转载)

    各个属性详情:http://blog.csdn.net/y1scp/article/details/49245535 开源项目链接 facebook Fresco仓库:git clone https: ...

  9. 快速近似最近邻搜索库 FLANN - Fast Library for Approximate Nearest Neighbors

    What is FLANN? FLANN is a library for performing fast approximate nearest neighbor searches in high ...

随机推荐

  1. Atitit.软件开发的最终的设计 dsl化,ast化(建立ast, 解析执行ast)

    Atitit.软件开发的最终的设计 dsl化,ast化(建立ast, 解析执行ast) 1. 使用js,html 撰写dsl1 1.1. 架构图1 1.2. html2 1.3. Js2 1.4. C ...

  2. Source Insight 项目简单使用说明

    SI(Source Insight) 是我一直写代码的好伙伴, 相信这强大的软件也是广大程序猿编写软件的利器. 正所谓" 工欲善其事, 必先利其器", 我们要学会利用这款软件. 先 ...

  3. href中使用相对路径访问上级目录的方法

    项目ProjectXXX目录如下: WebContent> hello.jsp Folder1> foo.jsp Folder2> foo2.jsp 在foo.jsp中访问hello ...

  4. 如何使用Photoshop(PS)将图片的底色变为透明

    很多时候需要将一张图片的底色变得透明.本文描述了使用PS将图片的一部分变得透明的方法.本例将一段艺术字的背景去掉,将背景透明的文字单独保存成图片,这样以后将这段文字粘贴到其他素材上的时候,就不用担心它 ...

  5. VmWare下安装CentOS6图文安装教程

    本教程使用的liunx系统(CentOS6)下载地址:http://download.csdn.net/download/yichen01010/10016202 一 先安装VMware. 双击安装文 ...

  6. oracle tuning 工具

    工欲善其事, 必先利其器. oracle 调优方面有很多工具, 目前 UI 个人只打算使用 Toad. 重要文件 一. alert log file. (位置 parameter BACKGROUND ...

  7. 常见中文字体在CSS中的Unicode编码(宋体:\5B8B\4F53)

    对于一个从事网页设计(也常说成DIV+CSS)的朋友来说,可能会遇到过这样的问题,就是在CSS里像这样设置某对象的字体:font-family:1.5em/1.75,’黑体’,Arial; 结果有些时 ...

  8. zend studio 10.6.2 字体大小 设置

    如果汉化的:窗体-->常规-->外观-->颜色和字体-->基本-->文字字体  点击编辑 如果未汉化:Window->Preferences->General ...

  9. 关于JSP生命周期的叙述,下列哪些为真?

    关于JSP生命周期的叙述,下列哪些为真? A.JSP会先解释成Servlet源文件,然后编译成Servlet类文件 B.每当用户端运行JSP时,jspInit()方法都会运行一次 C.每当用户端运行J ...

  10. 嵌入式开发之示波器----tektronix tds2024 的使用

    http://jingyan.baidu.com/article/91f5db1bf715c01c7f05e39a.html http://cn.tek.com/learning/oscillosco ...