【Python库安装填坑】faiss在Windows上的安装问题---from . import _swigfaiss ImportError: DLL load failed: 找不到指定的模块。


11月21号更新:经过GitHub大神指导,我终于发现faiss-gpu版为什么在VS code 不好使,但是 jupyter notebook却可以直接执行。具体内容参考"补充一"


Faiss的全称是Facebook AI Similarity Search。这是一个开源库,针对高维空间中的海量数据,提供了高效且可靠的检索方法。暴力检索耗时巨大,对于一个要求实时人脸识别的应用来说是不可取的。
而Faiss则为这种场景提供了一套解决方案。Faiss从两个方面改善了暴力搜索算法存在的问题:降低空间占用加快检索速度首先,Faiss中提供了若干种方法实现数据压缩,包括PCA、Product-Quantization等

安装这个库的时候,如果是用Windows平台的话,很容易出现问题,因为faiss官方维护比较多的是Linux系统版本,并且Windows平台没有faiss-gpu版本(我前几个月记得通过conda-forge方法成功安装GPU版本,但是今天一用貌似又出问题,到现在还没解决,没办法我只能用faiss-cpu版本凑合着了),所以为了不让自己下次再花那么多时间,这篇文章记录下这两天安装遇到的问题吧。

安装步骤

  1. 在anconda 环境里 输入 pip install faiss-cpu,开始安装
  2. 安装时可能会提示如下报警
    在这里插入图片描述
    这里说我的numpy安装文件夹里找不到METDATA文件,我进入对应的文件夹发现的确没有什么文件,
  3. 重新安装numpy ,选1.21.4版本,pip install numpy == 1.21.4,安装完后进入numpy安装文件夹发现有需要的METADATA
    在这里插入图片描述
  4. 运行你电脑里的faiss代码,比如:
import faiss
import numpy
faiss.Kmeans(10, 20).train(numpy.random.rand(1000, 10).astype('float32'))

有输出结果接证明安装成功




上面提到的安装问题还有个很奇怪的地方,就是我用anconda安装后,其实用jupyter notebook是可以执行的,比如faiss-gpu 版本,
在这里插入图片描述

但是在VS Code死活不能执行,提示找不到_swigfaiss模块
在这里插入图片描述
目前我还没弄明白什么原因,希望已经解决的朋友说下操作,或者到官方issue留言"import faiss" works in jupyternotebook but doesn’t work in VS Code

在这里插入图片描述

补充一 VS code 无法调用 import faiss

出现这这种问题,一般是指VS code无法调用conda虚拟环境安装的各种包,解决这种问题其实很简单,在对应的conda环境prompt界面直接输入"code ."启动VS code即可,如下图所示:
在这里插入图片描述
参考:

VS code 虚拟环境问题官方文档

补充二 torch gpu无法调用问题

在调用faiss-gpu 包是如果出现这样的错误,一般是指安装的pytorch-gpu版本配套的cudatoolkit与faiss-gpu配套的cudatoolkit不匹配,比如我的pytorch-gpu 用的是11.1.1版本cudatoolkit,而安装的faiss-gpu配套的cudatoolkit是11.2.2

File “D:\Users\Nandu\AppData\Local\Continuum\anaconda3\envs\pytorch-gpu\lib\site-packages\torch_init_.py”, line 123, in
raise err
OSError: [WinError 127] 找不到指定的程序。 Error loading “D:\Users\Nandu\AppData\Local\Continuum\anaconda3\envs\pytorch-gpu\lib\site-packages\torch\lib\cublas64_11.dll” or one of its dependencies.

因此,在安装faiss-gpu版本的时候要注意对应的cudatoolkit版本,如果缺省的话,会安装最新的cudatoolkit版本,具体操作如下图所示
在这里插入图片描述

参考:
1.faiss install.md

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值