【faiss报错】faiss.cast_integer_to_idx_t_ptr

报错:

最近为了运行一个代码,在配置包上遇到了问题,报错是:

return faiss.cast_integer_to_idx_t_ptr(
AttributeError: module ‘faiss’ has no attribute ‘cast_integer_to_idx_t_ptr’

查看了网络上的很多解决方法,无非是以下两个解决方案:

  1. 用conda而不要用pip。使用这个命令安装faiss-gpu:

$ conda install -c pytorch faiss-cpu
#或者
$ conda install -c pytorch faiss-gpu

  1. 参考链接 ,可以尝试把cast_integer_to_long_ptrcast_integer_to_idx_t_ptr替换。

  2. 版本问题,参考链接, 把版本降低到1.6.4以下

原因分析:

但是,这些方法都不能解决我的问题,甚至为了调整包的版本,我重新建了一个虚拟环境。


解决方案:

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’

最后感谢链接的介绍

猜你喜欢

转载自blog.csdn.net/DdLlCcc/article/details/129779380