Win10,深度学习GPU环境配置实录(Anaconda + TensorFlow 2 或 TensorFlow 1.15 + keras)

这是我第N次遇到把环境搞坏,再重新配环境,然后忘记各个步骤中的指令,然后全网查资料的情况。于是我决定落实一下一直都有的一个想法:写个 Blog 记录下从零开始搭建环境的全过程,以方便将来再次把环境搞坏的自己和遇到相同问题的同学们。

前言

GPU 对深度学习运算效率提升非常巨大,就我目前做的一个项目而言,一个 epoch 用 CPU 耗时 1622s ,而用 GPU 仅需要 33s,粗略估计下使用 GPU 运算效率是 CPU 的 50 倍。然而深度学习 GPU 的环境配置之路上各种坑,希望本文可以帮你绕开这些坑。

TensorFlow 2.0 alpha 版本也已经发布,其整体风格更接近于 PyTorch,将 Eager execution 设置为默认优先模式,这就意味着任何运算在调用后就会立即运行,从而不再需要预先定义静态图,变得更加方便使用。而且 Google 也已经收购了 Keras,也就是说 TensorFlow 2 将和 Keras 耦合起来,整体上考虑学习 TensorFlow 2 也是非常有价值的。本文也将介绍 TensorFlow 2 的环境配置。

2019/10/7补充:TensorFlow 2.0 在祖国 70 岁生日之际正式 release 了,现在直接安装 TensorFlow 将默认安装 2.0 版本。

目录

前言

 

Anaconda 安装

conda 的简单使用

基本操作

使用国内 conda 软件源加速

环境的导出与导入

jupyter lab 的配置

jupyter lab 添加 kernel

jupyter lab 默认工作路径修改

jupyter lab 插件安装

pip 使用国内镜像加速下载

CUDA 安装

cuDNN 安装

TensorFlow-GPU

Keras

其他要装的常用库


Anaconda 安装

从 Anaconda官网 下载,安装。推荐安装 Python 3 的版本,所以无情的我给旁边打上了马赛克。

Win10,深度学习GPU环境配置实录(Anaconda + TensorFlow 2 或 TensorFlow 1.15 + keras)_第1张图片

在安装过程中没有把 Anaconda 添加到环境变量的可以添加一下 Anaconda 的安装路径,%Anaconda%/Library/bin和 %Anaconda%/scripts/ ,这样就可以在 cmd 或者 powershell 中使用 conda 和 python,还可以避免一些问题。

conda 的简单使用

基本操作

Anaconda Prompt 用着很舒服。使用 install 安装包,remove 卸载包,activate 激活环境。有时候安装包的时候会出现没有权限什么的,以管理员身份运行 Anaconda Prompt 就好了。

以创建环境为例:

conda create -n DeepLearning python=3.7.4

移除环境:

conda remove -n DeepLearning --all

拷贝环境:

conda create --clone DeepLearning --name DL

使用国内 conda 软件源加速

鉴于惨不忍睹的下载速度,我们可以使用 清华大学 或者 中科大 的仓库镜像加速下载,以清华为例:

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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

conda config --set show_channel_urls yes

环境的导出与导入

在费了半天劲配好环境之后,可以将环境中的包名和版本号导出为 yaml 文件,之后可以发给别人,让别人快速的拥有一个和你一样的环境,或者自己以后再搞坏环境的时候可以方便的重新配置。

导出当前环境:

conda env export > environment.yaml

导入环境:

conda env create -f environment.yaml

当然,也可以用 pip 导出和导入:

pip freeze > requirements.txt
pip install -r requirements.txt

jupyter lab 的配置

jupyter lab 添加 kernel

Jupyter lab 是一个神器,但是新建的环境在 jupyter lab 中是不能直接使用的,需要安装 ipykernel 并将这个环境加入到 Jupyter Lab 中:

conda install ipykernel

python -m ipykernel install --name DL

使用:

jupyter kernelspec list

 查看现在 jupyter 已安装的 kernel,使用:

jupyter kernelspec remove DL

移除 kernel。

jupyter lab 默认工作路径修改

在 Anaconda Prompt 中:

jupyter lab --generate-config

# 或者

jupyter notebook --generate-config

可以获取 jupyter lab 配置文件的路径。修改这个文件的一个字段:

## The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = 'D:\'

把路径改成想要的工作路径就好了。

jupyter lab 插件安装

jupyter lab 作为一个神器却没有很好的代码提示等功能是令人遗憾的,不过我们可以通过安装插件的方式改善这些问题。首先要启用 jupyter lab 的插件管理器:

在菜单栏 Setting 中的 Advanced Setting Editer 中,做如下更改:

Win10,深度学习GPU环境配置实录(Anaconda + TensorFlow 2 或 TensorFlow 1.15 + keras)_第2张图片

之后便可以安装插件了。这里推荐几个插件:

展示 MarkDown 的目录

展示 ploty 可视化效果

使用 Matplotlib 可视化交互

变量检查器

code navigation + hover suggestions + linters + autocompletion + rename

pip 使用国内镜像加速下载

可以在使用 pip 的时候加参数

-i https://pypi.tuna.tsinghua.edu.cn/simple

以使用国内较快的源。

附上几个镜像源:

清华:https://pypi.tuna.tsinghua.edu.cn/simple

阿里云:http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

华中理工大学:http://pypi.hustunique.com/

山东理工大学:http://pypi.sdutlinux.org/ 

豆瓣:https://pypi.douban.com/simple/ 

要想要一劳永逸,可以在 user 目录下创建一个 pip 目录,新建pip.ini:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

CUDA 安装

CUDA 下载地址

首先呢,你要知道自己的显卡支不支持 CUDA。可以到 NVIDIA 官网 看看。

其次,你要知道自己的显卡支持 CUDA 的什么版本。可以在 NVIDIA Control Panel 里,Help -> System Information -> Components -> 3D Settings -> NVCUDA.DLL 看到。我的显卡是 RTX 2080,目前支持到 CUDA 10.0.132。

很多人都会遇到诸如 CUDA 8 和自己安装的 TensorFlow 版本不匹配然后被水淹没,不知所措的问题。对于这种问题只需要多

看 官方文档 就好了。比如:

Win10,深度学习GPU环境配置实录(Anaconda + TensorFlow 2 或 TensorFlow 1.15 + keras)_第3张图片

图中有说到 CUDA 和 cuDNN 的版本要求。

Win10,深度学习GPU环境配置实录(Anaconda + TensorFlow 2 或 TensorFlow 1.15 + keras)_第4张图片

这些是经过官方测试通过的版本。

所以安CUDA之前先上官网看一眼最新的 TensorFlow 版本,或者根据你要安装的 TensorFlow 版本,选择合适的 CUDA 和 cuDNN 版本。

需要注意的是,Keras 会限制 TensorFlow 的版本,TensorFlow 的版本又会限制 CUDA 的版本, 同时 TensorFlow 的版本也会限制诸如 numpy 的版本。考虑到 pip 和 conda 兼容性一般般的问题,个人建议 TensorFlow-gpu 环境下 numpy,matplotlib 等包全部用 pip 安装,以防 pip 安装 TensorFlow-gpu 后再用 conda 安装包导致的依赖项不兼容的问题。

我安装的是 Python 3.7.4,CUDA 10.1,cuDNN 7.6.5,TensorFlow-GPU 2.1。

另外一个环境是 Python 3.7.4,CUDA 10.0,cuDNN 7.5.0,TensorFlow-GPU 1.15。

在安装 CUDA 的时候有几点需要注意到的,首先是 Installation options 要选 Custom:

Win10,深度学习GPU环境配置实录(Anaconda + TensorFlow 2 或 TensorFlow 1.15 + keras)_第5张图片

接下来的组件安装推荐不安装 GeForce Experience... 和 CUDA 里的 VS Integration:

Win10,深度学习GPU环境配置实录(Anaconda + TensorFlow 2 或 TensorFlow 1.15 + keras)_第6张图片

接下来很重要的一点是看 Display Driver 的 当前版本和新版本,如果新版本比当前版本新,就一定要勾上;如果新版本比当前版本旧,就一定不能勾上;一样的话就无所谓了:

Win10,深度学习GPU环境配置实录(Anaconda + TensorFlow 2 或 TensorFlow 1.15 + keras)_第7张图片

Driver 这一条不这样设置基本会报错,至少我安装的时候是这样。

cuDNN 安装

cuDNN 下载解压后,直接解压到CUDA的安装路径下。

cuDNN 下载地址

TensorFlow-GPU

可以直接安装最新的稳定版本:

pip install tensorflow-gpu

2019/10/7补充:现在 TensorFlow 2.0 已经正式 release ,上面的命令将默认安装 2.* 版本,想要装老版本需要采用下面的方式。

也可以安装需要的版本:

pip install tensorflow-gpu==1.15

不用 conda 安装是因为之前用 conda 安装的不管是 tensorflow-gpu ,还是直接装 keras-gpu 都没有办法很方便的使用 GPU 运算。

测试:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

输出中有 GPU 就表示 OK 了。

Keras

简单粗暴。

pip install keras

其他要装的常用库

pip install numba scikit-learn matplotlib seaborn pandas tensorflow-datasets pillow

常见问题

1.Crash: Could not create cuDNN handle when convnets are used.

这个问题 GitHub 上 已经被讨论了很久了,我这里好用的解决方法:

config = tf.ConfigProto() 
config.gpu_options.allow_growth = True 
session = tf.Session(config=config, …)

 

参考来源


https://tensorflow.google.cn/install/gpu

https://www.jianshu.com/p/30555fd2bd50

https://www.cnblogs.com/guohaoblog/p/9260917.html

https://medium.com/@WhoYoung99/2018%E6%9C%80%E6%96%B0win10%E5%AE%89%E8%A3%9Dtensorflow-gpu-keras-8b3f8652509a

https://baijiahao.baidu.com/s?id=1627348344283610528&wfr=spider&for=pc

https://www.cnblogs.com/microman/p/6107879.html

你可能感兴趣的:(日常)