faiss学习

faiss 学习

介绍

安装

编译

索引学习


  • 首先想在本地mac上编译faiss(失败)html

    • 安装了cuda,但mac没有GPU
    • gcc g++ 默认使用的cmake,经过设置环境变量解决
    • 安装openblas boost thrift zookeeper
    • 还有一些依赖问题没有解决
    • 编译整个项目时出现找不到头文件的问题
  • 在本地安装thrift0.9.2(失败)git

    • 分别能够从github与thrit官网下载包进行安装,但都没有安装成功
    • 使用brew install thrift能够安装成功,但没法经过命令选择0.9.2版本
    • 网上能找到方法,从github上clone下来brew的thrift版本,而后git log找到0.9.2版本对应的commit id,git checkout到这个id,执行命令,会出错
  • 拉取centos7 docker镜像(失败)github

    • 因为生产环境中使用的是centos7,因此想拉取相同系统环境的镜像,好处是能够直接把线上的库文件scp到本地
    • 安装cmake make gcc g++
    • 但仍然须要安装cuda openblas thrift boost zookeeper等等依赖
    • 依赖安装不完整,编译项目时出现找不到头文件问题
  • 使用测试环境(经过)docker

    • 好处是各类依赖已经安装好
    • 有点麻烦的是在本地clion写好测试代码,复制到测试机上进行编译并执行测试
    • 测试目的为faiss不一样版本之间的性能,因为编译faiss(生成静态库文件)须要cuda openblas等依赖,所以也在测试机上执行
    • 直接将原src目录下的makefile目录复制,并进行修改(makefile来自nmslib项目,其中还有不少编译选项不明白)
    • 编译好不一样版本的faiss静态库文件,完成性能测试(faiss库还有待继续深刻学习)
  • 使用测试环境(没法使用GPU创建索引)centos

    • 缘由是测试环境的机器没有GPU,还一直在google错误信息,浪费时间,心塞。。。
      • 查看gpu以及类型 lspci | grep -i vga; lspci |grep -i nvidia
      • 查看nvidia显卡状态 nvidia-smi
  • 类似度post

    • inner product: 越大越类似(越大夹角越小,方向越一致)
    • cosine similarity: normalized vector, inner product, -1:1,越大越类似

待补充...

相关文章
相关标签/搜索