1
Windows平台深度学习入门指南
本文从最基本的依赖项开始,依次配置了 VS 2015、Anaconda 4.4.0、CUDA 8.0.61 和 cuDNN
v5.1 等基本环境,然后再从 Keras 出发安装 Theano、TensorFlow 和 CNTK 以作为其后端。在完成配置深度学习框架后,本文分别利用这三个框架作为 Keras 后端在 CPU 和 GPU 上训练了一个标准的卷积神经网络,完成该简单的卷积网络也就意味着我们完成了深度学习环境的配置。
2
目前有很多帮助我们在 Linux 或 Mac OS 上构建深度学习(DL)环境的指导文章,但很少有文章完整地叙述如何高效地在 Windows 10 上配置深度学习开发环境。此外,很多开发者安装
Windows 和 Ubuntu 双系统或在 Windows 上安装虚拟机以配置深度学习环境,但对于入门者来说,我们更希望还是直接使用 Windows 直接配置深度学习环境。因此,本文作者 Phil
Ferriere 在 GitHub 上发布了该教程,他希望能从最基本的环境变量配置开始一步步搭建
Keras 深度学习开发环境。
如果读者希望在 Windows 10 上配置深度学习环境,那么本文将为大家提供很多有利的信息。
01 依赖项
下面是我们将在 Windows 10(Version 1607 OS Build 14393.222)上配置深度学习环境所需要的工具和软件包:
1. Visual Studio 2015 Community Edition Update 3 w. Windows Kit 10.0.10240.0:用于其 C/C++编译器(而不是 IDE)和 SDK,选择该确定的版本是因为 CUDA 8.0.61 所支持的 Windows 编译器。
2. Anaconda (64-bit) w. Python 3.6 (Anaconda3-4.4.0) [for Tensorflow support] or
Python 2.7 (Anaconda2-4.4.0) [no Tensorflow support] with MKL:Anaconda 是一个开源的 Python 发行版本,其包含了 conda、Python、NumPy、SciPy 等 180 多个科学包及其依赖项,是一个集成开发环境。MKL 可以利用 CPU 加速许多线性代数运算。 3
3. CUDA 8.0.61 (64-bit):CUDA 是一种由 NVIDIA 推出的通用并行计算架构,该架构使
GPU
能够解决复杂的计算问题,该软件包能提供 GPU 数学库、显卡驱动和 CUDA 编译器等。
4. cuDNN v5.1 (Jan 20, 2017) for CUDA 8.0:用于加速卷积神经网络的运算。
5. Keras 2.0.5 with three different backends: Theano 0.9.0, Tensorflow-gpu 1.2.0, and
CNTK 2.0:Keras 以 Theano、Tensorflow 或 CNTK 等框架为后端,并提供深度学习高级 API。使用不同的后端在张量数学计算等方面会有不同的效果。
02 硬件
Dell Precision T7900, 64GB RAM:Intel Xeon E5-2630 v4 @ 2.20 GHz (1 processor,
10 cores total, 20 logical processors)
NVIDIA GeForce Titan X, 12GB RAM:Driver version: 372.90 / Win 10 64
03 安装步骤
我们可能喜欢让所有的工具包和软件包在一个根目录下(如 e:\toolkits.win),所以在下文只要看到以 e:\toolkits.win 开头的路径,那么我们可能就需要小心不要覆盖或随意更改必要的软件包目录。 4
Visual Studio 2015 Community Edition Update 3 w. Windows Kit 10.0.10240.0
下载地址:https:///vs/older-downloads
运行下载的软件包以安装 Visual Studio,可能我们还需要做一些额外的配置:
5 6 7 8
基于我们安装 VS 2015 的地址,需要将 C:\Program Files (x86)\Microsoft Visual
Studio 14.0\VC\bin 添加到 PATH 中。 9
定义系统环境变量(sysenv variable)INCLUDE 的值为 C:\Program Files
(x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
定义系统环境变量(sysenv variable)LIB 的值为 C:\Program Files (x86)\Windows
Kits\10\Lib\10.0.10240.0\um\x64;C:\Program Files (x86)\Windows
Kits\10\Lib\10.0.10240.0\ucrt\x64
Anaconda 4.4.0 (64-bit) (Python 3.6 TF support / Python 2.7 no TF support))
本教程最初使用的是 Python 2.7,而随着 TensorFlow 可作为 Keras 的后端,我们决定使用
Python 3.6 作为默认配置。因此,根据我们配置的偏好,可以设置
e:\toolkits.win\anaconda3-4.4.0 或 e:\toolkits.win\anaconda2-4.4.0 为安装 Anaconda
的文件夹名。
Python 3.6 版本的 Anaconda 下载地址:https://repo.continuum.io/archive/Anaconda3-4.4.0-Windows-x86_64.exe
Python 2.7 版本的 Anaconda 下载地址:https://repo.continuum.io/archive/Anaconda2-4.4.0-Windows-x86_64.exe
10
运行安装程序完成安装:
11 12
如上,本教程选择了第二个选项,但不一定是最好的。
定义一下变量并更新 PATH:
定义系统环境(sysenv variable)变量 PYTHON_HOME 的值为
e:\toolkits.win\anaconda3-4.4.0
添加 %PYTHON_HOME%, %PYTHON_HOME%\Scripts
和 %PYTHON_HOME%\Library\bin 到 PATH 中 13
创建 dlwin36 conda 环境
在安装 Anaconda 后,打开 Windows 命令窗口并执行:
1. #使用以下命令行创建环境
2. $ conda create --yes -n dlwin36 numpyscipymkl-service m2w64-toolchain
libpythonjupyter
3. #
使用以下命令行激活环境:
4. # > activate dlwin36
5. #
6. # 使用以下命令行关闭环境:
7. # > deactivate dlwin36
8. #
9. # * for power-users using bash, you must source
10. #
如上所示,使用 active dlwin36 命令激活这个新的环境。如果已经有了旧的 dlwin36 环境,可以先用 condaenv remove -n dlwin36 命令删除。既然打算使用 GPU,为什么还要安装 14
CPU 优化的线性代数库如 MKL 呢?在我们的设置中,大多数深度学习都是由 GPU 承担的,这并没错,但 CPU 也不是无所事事。基于图像的 Kaggle 竞赛一个重要部分是数据增强。如此看来,数据增强是通过转换原始训练样本(利用图像处理算子)获得额外输入样本(即更多的训练图像)的过程。基本的转换比如下采样和均值归 0 的归一化也是必需的。如果你觉得这样太冒险,可以试试额外的预处理增强(噪声消除、直方图均化等等)。当然也可以用 GPU 处理并把结果保存到文件中。然而在实践过程中,这些计算通常都是在 CPU 上平行执行的,而 GPU 正忙于学习深度神经网络的权重,况且增强数据是用完即弃的。因此,我们强烈推荐安装 MKL,而 Theanos 用 BLAS 库更好。
CUDA 8.0.61 (64-bit)
从英伟达网站下载 CUDA 8.0 (64-bit):https:///cuda-downloads
选择合适的操作系统:
15
下载安装包:
运行安装包,安装文件到 e:\toolkits.win\cuda-8.0.61 中:
16 17 18
完成安装后,安装包应该创建了一个名为 CUDA_PATH 的系统环境变量(sysenv variable),并且已经添加了%CUDA_PATH%\bin 和 %CUDA_PATH%\libnvvp 到 PATH 中。检查是否真正添加了,若 CUDA 环境变量因为一些原因出错了,那么完成下面两个步骤:
定义名为 CUDA_PATH 的系统环境变量的值为 e:\toolkits.win\cuda-8.0.61
添加%CUDA_PATH%\bin 和 %CUDA_PATH%\libnvvp 到 PATH 中