tensorflow-gpu完整安装(附各种报错解决办法)

tensorflow-gpu安装及cuda和cudnn的安装遇到的坑及解决办法

  今天安装tensorflow-gpu,遇到了太多坑,花了整整一晚上才搞好,下面我将总结下tensorflow完整安装办法,以及途中会遇到哪些错误以及怎么解决,如果你也遇到这类问题,可以参考一下:

使用conda安装

  首先,我想说的是,千万不要用pip安装tensorflow-gpu,因为gpu版本需要很多依赖包,包括cuda、cudnn等,而且,就算你单独去下载这些,安装后还是会有很多配置问题导致有误,无法安装成功,所以直接用conda安装(这里留下了一行行泪水)。
  所以,首先,你得安装好anaconda,这个可以直接搜索anaconda官网下载,很快搞完。
  因为conda自带的安装源速度特别慢,所以如果你不设置镜像源下载几乎还是安装不了,中途会自动断开,这里我选择清华镜像源,首先打开anaconda prompt,依次输入以下四个指令:

添加镜像源:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
添加镜像源:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
设置搜索时显示通道地址:conda config --set show_channel_urls yes
显示镜像源设置情况:conda config --show channels

这里最后一行为显示镜像源设置情况,如果看到结果显示有上述链接表示设置成功。当然也有删除镜像源的指令如下:

删除镜像源:conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

接着,又有一个非常需要注意的是,不要简单的使用:

conda install tensorflow-gpu

这行指令去安装,这样只会安装低版本tensorflow-gpu==1.14,但是我试了下安装最新版本,也就是用下面指令:

conda install tensorflow-gpu==2.1

会出现:

Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: /

后面就是各种examining ****各种东西,完全不知道在搞什么,所以上面两种做法都是不对的,正确做法是:在anaconda中创建一个新环境,可以用下面一行指令安装:

conda create -n tensorflow-gpu tensorflow-gpu

这一行指令就可以将tensorflow-gpu安装好,保存于新创建的名称为tensorflow-gpu虚拟环境下,这里面包括了需要的所有包,包括python和cuda、cudnn等,这个时候你也许会问,这样每次要用tensorflow都得更换运行环境是不是很麻烦,其实不麻烦,比如你使用vs code软件,你都可以选择python版本,这个时候你只需要选择你这个环境下的python就可以,说白了这个新创的tensorflow-gpu虚拟环境跟conda的默认base环境是等价的。
  通过上面一行指令,其实你就可以使用下面步骤检验一下是否安装成
1、打开anaconda navigator,选择environments中你自己创建的这个tensorflow-gpu环境,
点击那个小小三角形选择terminal,就进入了这个新创的环境中,这个时候直接使用:

python
import tensorflow as tf
tf.__version__

就可以查看安装情况了,这里需要注意的是,有时候虽然没有报错,但是可有可能是有问题的,因为这里如果发现gpu有问题,或者cuda有问题,他会默认改为tensorflow-cpu版本,所以如果弹出来很多奇怪的但不至于运行不了的错误,你重点要留意下,如果确实出现了这类问题,那就接着参考我接下来的遇到的一些问题及解决方法(可以直接跳到倒数第二节,看是否是这个问题)。

cuda安装

  cuda安装过程也有非常多的坑,首先,你需要去官网下载cuda最新版本,这个直接去官网下载即可,有点大,将近3个G,如果下载后直接安装,选择精简版或者自定义版都可以,那么恭喜你,大概率将有可能报下面错误:NVIDIA安装程序失败(图片来源:https://zhuanlan.zhihu.com/p/54680789)
tensorflow-gpu完整安装(附各种报错解决办法)_第1张图片
这个时候我的解决办法是卸载已经有的显卡驱动,这里不用担心没了显卡驱动电脑就会显示不了,因为就算没了nvidia驱动,系统会自动安装一个默认驱动,所以不用担心,直接到设备管理器,显示设置找到显卡驱动程序,右键点击卸载驱动,然后回来重新安装cuda,一套下来,你会发现安装成功了。

cudnn安装

  这个安装其实就没什么问题,在官网上一套注册后直接下载,不大也就几百M,然后下载下来后解压,将解压后的三个文件分别放在上面安装好的cuda的相应文件夹里面(比如有bin、lib等文件夹),然后即完成了。

Could not find 'cudart64_100.dll’或者Could not find ‘cudart64_101.dll’

如果你还遇到这个问题,具体就是下面这个报错:

ImportError: Could not find 'cudart64_100.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Download and install CUDA 10.0 from this URL: https://developer.nvidia.com/cuda-90-download-archive

这是因为tensorflow版本和cuda版本不匹配导致的,有两种解决办法,一种当然是找跟你这个版本tensorflow-gpu匹配的cuda版本安装(这里我提示下,tensorflow-gpu=2.1版本需要的是cudart64_101.dll,而tensorflow-gpu=2.0版本需要的是cudart64_100.dll,所以上面说的报错就是分别代表你安装哪个版本,而cudav10.2bin文件夹内是cudart64_102.dll,低一点其它版本估计是cudart64_101.dll,再低一点版本估计就是cudart64_100.dll,具体哪个就不清楚了),另一种方法就更加简单,你只需要到cuda安装路径的bin文件夹下面找到cudart64_101.dll或者cudart64_102.dll,重命名为cudart64_100.dll或者cudart64_101.dll,这个时候,再运行,你就会发现问题解决了。

结语

  当然,上面如果还是没有解决,说明你可能不是用conda创建虚拟环境安装的tensorflow-gpu,所以建议再用我最开始讲的那行指令安装即可,相信到这里大家因该没什么问题了。如果还有问题,欢迎留言评论区,只要我看到我定会马上回复,帮助大家及时安装好tensorflow-gpu的!——————祝大家顺利安装好tensorflow-gpu!!!!

你可能感兴趣的:(深度学习,tensorflow,python,cuda)