这是我入门深度学习的第八天。昨日在跑深度学习的人体行人检测技术的开源代码时运行出现了这个问题cudagetdevice() failed. status: initialization error,调试了一整天没找到问题,最后通过恩师的指导下解决了错误,这篇文章写给自己记录学习过程,也希望能为遇到同样问题的人提供可能的解决方法。

在跑代码时遇到了这个报错

     按照以往的CV经验,此时应该上网找解决方案,然而网上的解决方案大多是有遇到cudagetdevice() failed问题的,但是错误的状态码不同,我没有找到 status: initialization error的解决方案,查到外网一个解决方案,是有关版本匹配的问题,但我之前用过paddlepaddle,cuda和cudnn的版本应该是匹配的(我的cuda安装的10.1版本,cudnn7.6.5),查看了tensorflow的版本是2.6,python的版本是3.9。当时我觉得有没有可能是tensorflow的版本不对应,但是想了想我是在anaconda环境中直接pip install tensorflow 安装的tensorflow 应该不会出现问题,然后一整天在打转。

 解决方法

     首先确保你的cuda和cudnn版本对应(对应关系可以自己去查,网上很多),查看自己下载的cuda版本的方法(命令行输入nvcc -V),cuda的查看要去对应文件夹查看(网上有方法)

nvcc -V

       虽然网上很多建议是用tensorflow 2.6版本来匹配,但是实验就是不成功,因此,我参考了外网的解决方法,将tensorflow-gpu的版本降为2.3

1.首先先卸载已经有的tensorflow,在anaconda对应环境中使用pip uninstall tensorflow卸载原有的tensorflow版本

pip uninstall tensorflow

2.指定版本指定源安装tensorflow-gpu==2.3

pip install tensorflow-gpu==2.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

       当然最好的方法就是事先设置了pip的下载源,这样就不用每次安装都输入-i https://pypi.tuna.tsinghua.edu.cn/simple了

       有时候下载完会因为权限等原因无法安装,这里建议要用管理员权限打开命令提示符,并换用如下指令下载

pip install --user tensorflow-gpu==2.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完后重新运行代码,发现成功运行了!!!

以上是我这个问题的解决方案,希望能够帮助到大家,一起学习!

Logo

鸿蒙生态一站式服务平台。

更多推荐