win10+cuda+cudnn+anaconda环境安装
实验室新来了一台服务器,唉,花了我3天的时间去安装他那个环境,记一下安装流程,希望可以帮助一下苦苦安装环境的小伙伴吧!
先说一下新服务器的配置:见下图:
这是在英伟达官网下载驱动程序设置参数的时候截的图,我下载的驱动是‘457.09’版本的,没啥注意的,我就随便安装了一下!
1、CUDA的安装
接下来是CUDA的安装,我开始一直使用的是CUDA11.1,但是因为各种各样的错误,导致我的环境安装不成功,我觉得可能是因为CUDA11.1太新了,导致tensorflow没法匹配,而我在网上能看到的最新的CUDA和tensorflow对应的版本就是CUDA10.1。所以我果断卸载了CUDA11.1,安装了CUDA10.1,这个是网址 ‘https://developer.nvidia.com/cuda-10.1-download-archive-update1?target_os=Windows&target_arch=x86_64&target_version=10’
下图是我下载的版本:
安装的过程一直默认就行了!安装之后需要配置环境变量,因为搜了很多博客,导致后来都不知道到底需要配置哪些环境变量,所以索性把所有的环境变量都写上了,这里附上我配置环境的的那个网址吧 , "https://blog.csdn.net/vastz/article/details/108813557",也可以参照这个博客进行安装。我配置的环境是下面这样的,第一张是系统里面配置,第二张在用户的path里面配置的,应该有很多事没必要的。
完事之后可以进入win+R进入命令行,查看安装成功如否,一个是"nvcc -V",这个是查看你安装的信息的;另一个是"nvidia-smi",这是查看你GPU信息的,见下图,如果出现了和我类似的信息的话,那么CUDA就安装完成了。
2、cudnn安装
之后是下载cudnn,又是不敢使用太新的版本,所以我下载的是cudnn7.6.5,下载cudnn需要登录邮箱,随便用一个邮箱登录就行了,也支持QQ和微信登录!附一下网址 "https://developer.nvidia.com/rdp/cudnn-archive"
cudnn下载完事之后,将文件夹解压,然后将里面的bin、include和lib复制"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1"里面,不用担心会覆盖,因为根本没有重复的文件,大胆复制!
3、Python及TensorFlow-gpu的安装
先安装Python,我用的是Python3.6,因为这个版本兼容性好一点,可以直接安装Python,去python官网下载就行,也可以安装anaconda,这里我就用anaconda举例,因为我用的是这个。anaconda也别太新,里面的Python版本是3.6的就行了,anaconda安好了之后打开anaconda prompt,接下来安装环境就是在这里进行(如果是没用anaconda的话,直接使用win+R的命令行)。
可以先用"pip list"来看一下自己有哪些包,然后安装TensorFlow-gpu 2.1.0,用清华镜像会快点,指令为"pip install tensorflow-gpu==2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple",里面的版本号随便改都能用,这就完事了,其他的包对应着版本安装就OK了!
然后就是测试环境是不是都兼容了,最好去安装的Python里面打开python.exe,因为如果有错误他会提示的很详细,这样也方便百度去解决,输入指令:
import tensorflow as tf
print(tf.test.is_gpu_available())
基本上这个指令正确的输出信息那就可以了,说明安装完成了!可以参照一下下面的截图,由于信息太多,所以只有后面部分,参照一下:
4、说一下我出现的几个错误。
(1)'ImportError: No module named 'tensorflow.python.pywrap_tensorflow_internal''
一般出现这句话的错误那就是tensorflow-gpu版本不对了,卸载重新安装tensorflow-gpu就行了!
(2)出现这种字样:'cudnn64_7.dll not found'
具体原因好像是版本问题,我的解决方法也是最简单的解决方法就是在'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin'内找一个名字类似的,比如'cudann64_8.dll'自己重命名为'cudnn64_7.dll'。这样问题ok了。
(3)出现下面这种错误:
这个就是你GPU的显存不够,要么就是网络训练的时候batch_size太大,要么就是通过用一个GPU训练多个网络,改一下就好了!
因为我这是后来写的博客,所以很多错误都忘了,不能列举很多了,不好意思,但是我觉得如果版本都对应上,基本就不会有错误了!