从环境配置开始记录一下机器学习的过程,也是第一篇博客,希望能帮助到看到的人
电脑环境:windows10专业版+RTX2070S
安装软件:
Anaconda3 5.2.0
Tensorflow 2.2.0 gpu版
CUDA 10.2
cuDNN 7.6.5
为不能的朋友:清华源
需要最新版的朋友:官网
下载完成后运行,注意勾选 add anaconda to my PATH environment variable
中间有Visual Studio integration安装,经常报错,建议不要安装(错误内容:网络链接不稳定)
为了保证稳定性,选择安装python3.6
打开cmd,使用命令
conda create -n tensorflow pip python=3.6
从提示中得知,要使用这个环境,需要命令 activate tensorflow
出现如上提示,即为成功
1.CUDA:CUDA Toolkit
点击查看CUDA与显卡驱动对应关系(如下图)
自行选择与显卡驱动版本相适应的CUDA版本
笔者选择network版本下Base Installer安装:
此处network版本较小,但是后续使用需要联网,local版本较大,但是不需联网,请根据自身需要选择。
(RTX系列安装CUDA9.0会出现该提示,建议更换10.0)
正常开始安装后,第一次安装建议全选,但是如果选择Visual Studio integration会出现上文中出现过的网络连接错误
记住路径,以便于配置环境变量,接下来开始安装等待…
在 “我的电脑-属性-高级系统设置-环境变量” 中找到path,添加以下环境变量(cuda使用默认安装路径):
“系统变量”中 出现CUDA_PATH,NVCUDASAMPLES_ROOT相关内容
编辑path变量
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp
新加入进去
后在CMD中输入 nvcc -V指令,跳出版本信息,则CUDA安装成功
cuDNN官网(需登入)
选择对应版本 笔者下载的是CUDA10.2,故选择cuDNN v7.6.5
将下载文件解压,得到
全选,复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2(上文CUDA安装地址)中
复制后:
参考Tensorflow官网,查看CPU,编译环境与Tensorflow的对应关系(如下图)
选择好对应的Tensorflow版本后,进行下载
法1(默认下载最新版,确认好版本对应之后可用):
注意使用管理员权限进入
Anaconda prompt中输入命令
activate tensorflow
pip install --user --ignore-installed --upgrade tensorflow-gpu
法2
或输入命令
activate tensorflow
conda install tensorflow-gpu
(此处图片用Anaconda prompt做演示)
如果出现timeout错误,请尝试使用VPN
法3 :清华源链接下载
选择好对应的版本,点击即可下载,下载后在cmd中进入下载根目录,输入
pip install tensorflow对应的文件名.whl
等待安装完成即可
使用代码
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.compat.v1.Session()
print(sess.run(hello))
在Tensorflow的官网给出的安装cuDNN的操作中,只是将cuDNN的文件解压到如C:\tools\cuda,并不需要把cudnn的文件拷贝到CUDA的安装目录中,去检查CUDA的这几个文件夹,将cuDNN对应文件拷贝覆盖进入解决
使用Tensorflow 2.x版本时,可能会出现该错误,原因是其版本不兼容
将测试代码改为:
import tensorflow as tf
tf.compat.v1.disable_eager_execution() #添加一行
hello = tf.constant('Hello, TensorFlow!')
sess = tf.compat.v1.Session()
print(sess.run(hello))
即可