faiss学习
faiss 学习
介绍
安装
编译
- faiss安装
- makefile.inc的作用
- 按照教程可以分别生成libfaiss.a与libgpufaiss.a静态库文件
- Centos 7.3 编译 & 安装 & 测试 facebook faiss
索引学习
坑
- 首先想在本地mac上编译faiss(失败)
- 安装了cuda,但mac没有GPU
- gcc g++ 默认使用的cmake,通过设置环境变量解决
- 安装openblas boost thrift zookeeper
- 还有一些依赖问题没有解决
- 编译整个项目时出现找不到头文件的问题
- 在本地安装thrift0.9.2(失败)
- 分别可以从github与thrit官网下载包进行安装,但都没有安装成功
- 使用brew install thrift可以安装成功,但无法通过命令选择0.9.2版本
- 网上能找到方法,从github上clone下来brew的thrift版本,然后git log找到0.9.2版本对应的commit id,git checkout到这个id,执行命令,会出错
- 拉取centos7 docker镜像(失败)
- 由于生产环境中使用的是centos7,所以想拉取相同系统环境的镜像,好处是可以直接把线上的库文件scp到本地
- 安装cmake make gcc g++
- 但仍然需要安装cuda openblas thrift boost zookeeper等等依赖
- 依赖安装不完整,编译项目时出现找不到头文件问题
- 使用测试环境(通过)
- 好处是各种依赖已经安装好
- 有点麻烦的是在本地clion写好测试代码,复制到测试机上进行编译并执行测试
- 测试目的为faiss不同版本之间的性能,由于编译faiss(生成静态库文件)需要cuda openblas等依赖,因此也在测试机上执行
- 直接将原src目录下的makefile目录复制,并进行修改(makefile来自nmslib项目,其中还有很多编译选项不明白)
- 编译好不同版本的faiss静态库文件,完成性能测试(faiss库还有待继续深入学习)
- 使用测试环境(无法使用GPU建立索引)
- 原因是测试环境的机器没有GPU,还一直在google错误信息,浪费时间,心塞。。。
- 查看gpu以及类型
lspci | grep -i vga; lspci |grep -i nvidia - 查看nvidia显卡状态
nvidia-smi
- 查看gpu以及类型
- 原因是测试环境的机器没有GPU,还一直在google错误信息,浪费时间,心塞。。。
- 相似度
- inner product: 越大越相似(越大夹角越小,方向越一致)
- cosine similarity: normalized vector, inner product, -1:1,越大越相似
待补充...
faiss学习的更多相关文章
- Faiss学习:一
在多个GPU上运行Faiss以及性能测试 一.Faiss的基本使用 1.1在CPU上运行 Faiss的所有算法都是围绕index展开的.不管运行搜索还是聚类,首先都要建立一个index. import ...
- Faiss的学习和入门文章
可以看这里的文章: https://www.leiphone.com/news/201703/84gDbSOgJcxiC3DW.html https://waltyou.github.io/Faiss ...
- faiss索引基于数量级和内存限制的选择
它是一个能使开发者快速搜索相似多媒体文件的算法库.而该领域一直是传统的搜索引擎的短板.借助Faiss,Facebook 在十亿级数据集上创建的最邻近搜索(nearest neighbor search ...
- Searching with Deep Learning 深度学习的搜索应用
本文首发于 vivo 互联网技术微信公众号 https://mp.weixin.qq.com/s/wLMvJPXXaND9xq-XMwY2Mg作者:Eike Dehling翻译:杨振涛 本文由来自 T ...
- Faiss教程:索引(1)
索引是faiss的关键知识,我们重点介绍下. 索引方法汇总 有些索引名,我就不翻译了,根据英文名去学习更准确. 索引名 类名 index_factory 主要参数 字节数/向量 精准检索 备注 精准的 ...
- 揭开Faiss的面纱 探究Facebook相似性搜索工具的原理
https://www.leiphone.com/news/201703/84gDbSOgJcxiC3DW.html 本月初雷锋网报道,Facebook 开源了 AI 相似性搜索工具 Faiss.而在 ...
- 阿里Tree-based Deep Match(TDM) 学习笔记
阅读文献:https://zhuanlan.zhihu.com/p/35030348 参考文献:https://www.leiphone.com/news/201803/nlG3d4sZnRvgAqg ...
- Youtube深度学习推荐系统论文
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45530.pdf https://zh ...
- Faiss流程与原理分析
1.Faiss简介 Faiss是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库.它包含多种搜索任意大 ...
随机推荐
- liunx top命令详解
1,当前服务器时间,up,服务器离上一次重启过了多久,多少个用户在使用,cpu平均负载,grep 'core id' /proc/cpuinfo | sort -u | wc -l ,一般来说4个, ...
- Linux(CentOS 7.0)安装Oracle11g R2
// 注释 # root用户 $oracle用户 1. 关闭安全措施 # chkconfig iptables off // 永久关闭防火墙 # serviceiptables stop // ...
- android 监控应用进程
在android系统中,怎么监控应用的进程改变及消亡呢? 至于监控应用进程能做什么,这个就不多说了,你懂的. 在android系统中有这么一个类ActivityManagerNative,看名称就大概 ...
- python文件打开方式详解——a、a+、r+、w+区别
出处: http://blog.csdn.net/ztf312/ 第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,二者都会将文件内容清零 (以w方式打开,不能读出. ...
- 内训--PPT演示技巧
企业内训,实操,不涉及如何做PPT,仅讲解PPT播放等内容.做好PPT后,在演讲的过程中,如何使用这些功能.
- 一个java使用redis的简单案例
这个例子中,java使用Jedis来操作Redis 1.引入Jedis的依赖 <dependency> <groupId>redis.clients</groupId&g ...
- 性能测试day06_需求设计的学习(性能重中之重,思维方向永远重于工具)
今天接着来学习下性能知识,本来是应该先学习一下LR的用法的,不过听完云层大大的课之后,我感觉工具没有这一篇来的重要,我们知道性能有三大步骤:负载->监控->调优,但是在这个之前我们首先要搞 ...
- ORA-00911: invalid character 包含中文报错
SQL在pl下正常执行在vs里报错ORA-00911: invalid character. 1.检查SQL末尾是否含有";" 去掉 2.sql包含中文报错 string sql ...
- 在HTML中显示base64 img 图片
base64的图片可以直接显示在网页上面 <img src=“data:image/png;base64,******************************************** ...
- orcal安装
1.下载安装包(版本32位或64位)下载网址:https://www.oracle.com,建议关闭防火墙(可以的话关闭网) 2.将两个安装包解压为一个安装包 3.点击执行 3. 4. 5. 5. 6 ...