使用go调用faiss

最近偶然发现了一个go调用faiss的封装库, 尝试后可以成功调用。 安装稍微麻烦,具体如下:

安装faiss
git clone https://github.com/facebookresearch/faiss.git

因为封装库使用的是过往版本的faiss,需要checkout到对应的版本

git checkout v1.6.3

克隆好项目后,进行编译,参考https://github.com/facebookresearch/faiss/blob/v1.6.3/INSTALL.md
我需要使用cpu环境,所以编译参数如下:

./configure --without-cuda
make
make install

faiss主体编译安装完成后,开始编译c接口

cd c_api
make

接口编译完成后,在c_api目录下会生成两个对我们有用的文件

libfaiss_c.a  libfaiss_c.so

将其链接到lib目录中

ln -s /data/faiss/c_api/libfaiss_c.so /usr/local/lib/
ln -s /data/faiss/c_api/libfaiss_c.a /usr/local/lib/
运行示例代码

faiss安装完成后, 克隆封装库的代码

git clone https://github.com/41tair/go-faiss.git

运行示例代码

cd example
go run example.go
# 输出
Start insert
Insert finish
ID: 471319862 Distance: 18.642956
ID: 444848353 Distance: 19.184757
ID: 1455878618 Distance: 19.220947
ID: 1179290612 Distance: 19.921898
ID: 272479062 Distance: 20.307579
ID: 776950312 Distance: 20.549385
ID: 76215616 Distance: 20.987206
ID: 1986848913 Distance: 22.040276
ID: 740259201 Distance: 22.206093
ID: 548764935 Distance: 22.71563

调用成功。 这个库封装了faiss的工厂接口,后面的使用可以参考https://github.com/facebookresearch/faiss/wiki/The-index-factory
如果运行example时提示库找不到,可以通过如下方法修复:

vim /etc/ld.so.conf.d/user-lib.conf
# 增加 /usr/local/lib
cat /etc/ld.so.conf.d/user-lib.conf
# 输出
/usr/local/lib

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值