报错:
最近为了运行一个代码,在配置包上遇到了问题,报错是:
return faiss.cast_integer_to_idx_t_ptr(
AttributeError: module ‘faiss’ has no attribute ‘cast_integer_to_idx_t_ptr’
查看了网络上的很多解决方法,无非是以下两个解决方案:
- 用conda而不要用pip。使用这个命令安装faiss-gpu:
$ conda install -c pytorch faiss-cpu
#或者
$ conda install -c pytorch faiss-gpu
原因分析:
但是,这些方法都不能解决我的问题,甚至为了调整包的版本,我重新建了一个虚拟环境。
解决方案:
pip install --ignore-installed faiss-gpu==1.6.5 -i https://pypi.douban.com/simple/
最终为了解决这个问题,我发现一些解决方案提到了版本兼容的问题,最后,我反向升级了faiss-gpu的版本,发现能跑通了。建议可以参考这个链接的方法,试试提升版本,可能是pytorch和cuda版本的影响。在提升到1.6.5之后,再试试方法2的替换。
这里给出我的配置信息给大家参考:
NVIDIA GeForce RTX 3090
torch ‘1.13.1’
cuda ‘11.6’
faiss-gpu ‘1.6.5’
最后感谢链接的介绍