06.18 Windows10下Keras,Tensorflow,CNTK ,MXNet和PyTorch的GPU

Windows10下Keras,Tensorflow,CNTK ,MXNet和PyTorch的GPU加速(趣说人工智能版权)。最新更新:

  • 支持5个框架(Keras / Tensorflow / CNTK / MXNet和PyTorch),
  • 支持3个GPU加速Keras后端(CNTK,Tensorflow或MXNet),
  • 不需要安装Visual Studio,
  • 不需要单独安装MinGW,
  • 使用了许多python库的更新版本。

当然有很多指南可以帮助您在Linux或Mac OS上构建伟大的深度学习(DL)设置(包括使用Tensorflow,不幸的是,在这篇文章中,不能很容易地在Windows上安装),但很少关心构建高效的Windows 10 本机设置。大多数人专注于运行托管在Windows上或使用Docker的Ubuntu VM,这是不必要的,并且最终是次优的步骤。

我们还找到了足够的误导/不赞成的信息,以便为Keras,Tensorflow,CNTK,MXNet和PyTorch的最新稳定版本提供分步指南。可以一起使用(例如Keras和Tensorflow后端),也可以独立使用 - PyTorch不能用作Keras后端,TensorFlow可以独立使用 - 它可以让一些功能最强大的深度学习python库在本机上工作视窗。

如果您必须在Windows 10上运行DL设置,那么这里包含的信息将对您有用。2017年7月,2017 年5月和2017 年1月的旧版安装说明仍然可用。他们允许您使用Theano作为Keras后端。

依赖

以下是我们用于在Windows 10(版本1709 OS Build 16299.371)上进行深入学习的工具和库的摘要列表:

  1. Visual Studio 2015 Community Edition Update 3 w。Windows Kit 10.0.10240.0
  • 用于C / C ++编译器(不是IDE)和SDK。由于CUDA中的Windows编译器支持而选择了此特定版本。
  1. python(64位)w。使用MKL 2018.0.3的Python 3.6(Anaconda3-5.2.0)[支持Tensorflow]或Python 2.7(Anaconda2-5.2.0)[无Tensorflow支持]
  • Python发行版为我们提供了NumPy,SciPy和其他科学图书馆
  • MKL用于其许多线性代数运算的CPU优化实现
  1. CUDA 9.0.176(64位)
  • 用于GPU数学库,卡驱动程序和CUDA编译器
  1. 针对CUDA 9.0.176的cuDNN v7.0.4(2017年11月13日)
  • 用于运行速度更快的卷积神经网络
  1. 具有三种不同后端的Keras 2.1.6:Tensorflow-gpu 1.8.0,CNTK-gpu 2.5.1和MXNet-cuda90 1.2.0
  • Keras用于在Tensorflow或CNTK上进行深度学习
  • Tensorflow和CNTK是后端,用于评估多维阵列上的数学表达式
  • Theano是一个传统的后端,不再处于积极的发展之中
  1. PyTorch v0.4.0

硬件

  1. 戴尔Precision T7900,64GB内存
  • Intel Xeon E5-2630 v4 @ 2.20 GHz(1个处理器,总共10个内核,20个逻辑处理器)
  1. NVIDIA GeForce Titan X,12GB内存
  • 驱动程序版本:390.77 / Win 10 64
  1. NVIDIA GeForce GTX 1080 Ti,11GB RAM
  • 驱动程序版本:390.77 / Win 10 64

安装步骤

我们喜欢将我们的工具包和库保存在一个无名的单个根文件夹中e:\\toolkits.win,因此,无论何时您看到一个以e:\\toolkits.win下面开头的Windows路径,都要确保将其替换为您自己的工具包驱动器和文件夹应该包含的任何内容。

工具包

Visual Studio 2015 Community Edition Update 3 w。Windows Kit 10.0.10240.0

使用Update 3(x86)下载Visual Studio Community 2015。它由CUDA工具包使用。

请注意,要下载,需要免费的Visual Studio Dev Essentials许可证或完整的Visual Studio订阅。

Anaconda 5.2.0(64位)(Python 3.6 TF支持/ Python 2.7无TF支持)

本教程最初是使用Python 2.7创建的。由于Tensorflow已成为Keras的后端,我们决定默认使用Python 3.6来记录安装步骤。根据您自己的首选配置,使用e:\\toolkits.win\\anaconda3-5.2.0或e:\\toolkits.win\\anaconda2-5.2.0作为安装Anaconda的文件夹。从这里下载Python 3.6 Anaconda版本以及从那里下载Python 2.7版本:

Windows10下Keras,Tensorflow,CNTK ,MXNet和PyTorch的GPU加速

定义以下变量并更新PATH,如下所示:

  1. PYTHON_HOME用值定义sysenv变量e:\\toolkits.win\\anaconda3-5.2.0
  2. 添加%PYTHON_HOME%,%PYTHON_HOME%\\Scripts和%PYTHON_HOME%\\Library\\bin以PATH

创建一个 dlwin36 conda环境

安装Anaconda后,打开Windows命令提示符并执行:$ conda create --yes -n dlwin36 numpy scipy mkl-service m2w64-toolchain libpython matplotlib pandas scikit-learn tqdm jupyter h5py cython

这是上述命令的输出日志。接下来,使用activate dlwin36来激活这个新的环境。顺便说一句,如果你已经有一个较旧的dlwin36环境,你可以使用它来删除它conda env remove -n dlwin36。

可选但强烈推荐的图像处理库

如果我们要使用GPU,为什么我们要安装像MKL这样的CPU优化的线性代数库?通过我们的设置,大多数深度学习的咕噜声都是由GPU执行的,这是正确的,但CPU不是空闲的。基于图像的Kaggle竞赛的一个重要部分是数据增强。在这种情况下,数据增强是通过使用图像处理操作员对原始训练样本进行变换来制造额外输入样本(更多训练图像)的过程。诸如下采样和(以均值为中心)归一化等基本变换也是需要的。如果你觉得冒险,你会想尝试额外的预处理增强(去噪,直方图均衡等)。您当然可以将GPU用于此目的,并将结果保存到文件中。然而,在实践中,这些操作通常在CPU上并行执行,而GPU正在忙于学习深度神经网络的权重和使用后丢弃的增强数据。

如果您的深度学习项目是基于图像的,我们还建议安装以下库:

  • scikit-image
  • :Python编程语言的开源图像处理库,包括分割,几何变换,色彩空间操作,分析,过滤,形态学,特征检测等算法。请参阅此页面了解更多信息。
  • opencv
  • :一个主要针对实时计算机视觉的编程功能库。它具有C ++,Python和Java接口,并支持许多操作系统平台,包括Windows。请参阅此页面以获取更多信息。
  • imgaug
  • :这是一个基于图像的Kaggle比赛的主食,这个python库通过将一组输入图像转换成一个新的,更大的一组稍微变化的图像来帮助您增强机器学习项目的图像。详情请参阅此页面。

要安装这些库,请使用以下命令:$ activate dlwin36(dlwin36) $conda install --yes pillow scikit-image(dlwin36) $conda install --yes -c conda-forge opencv(dlwin36) $pip install git+https://github.com/aleju/imgaug

这是上述命令的输出日志。

CUDA 9.0.176(64位)

从NVidia网站下载CUDA 9.0.176(64位)为什么不安装CUDA 9.1?简单地说,因为在撰写本文时,Tensorflow 1.8仍然使用CUDA 9.0(请参阅问题#15140)。选择适当的目标平台:

Windows10下Keras,Tensorflow,CNTK ,MXNet和PyTorch的GPU加速

依次运行下载的安装程序。在

e:\\toolkits.win\\cuda-9.0.176

以下位置安装文件:

Windows10下Keras,Tensorflow,CNTK ,MXNet和PyTorch的GPU加速

完成后,安装程序应该已经创建了一个系统环境(sysenv)变量命名

CUDA_PATH,并加入%CUDA_PATH%\\bin以及%CUDA_PATH%\\libnvvp

对PATH检查确实如此。出于某种原因,如果CUDA环境变量缺失,那么:

  1. 定义一个
  2. CUDA_PATH以该值命名的系统环境(sysenv)变量e:\\toolkits.win\\cuda-9.0.176
  3. 添加
  4. %CUDA_PATH%\\bin和%CUDA_PATH%\\libnvvp到PATH

针对CUDA 9.0的cuDNN v7.0.4(2017年11月13日)

根据NVidia的网站,“cuDNN为标准例程提供了高度优化的实现,例如前向和后向卷积,池化,规范化和激活层,”卷积网络体系结构的标志。从这里下载cuDNN 。选择与CUDA版本匹配的Windows 10的cuDNN Library.

深入学习python库

安装keras2.1.6

为什么不安装Keras和各种后端(Tensorflow,CNTK或Theano)的最新出血版/ dev版本?简而言之,因为它使得可重复研究变得更加困难。如果您的工作伙伴或Kaggle团队成员在不同于开发时间的时间从开发分支安装最新代码,那么您很可能会在您的计算机上运行不同的代码库,从而增加了即使使用相同输入数据的几率(相同的随机种子等),当你不应该时,你仍然会得到不同的结果。仅凭这个原因,我们强烈建议只使用点发布版本,跨机器使用同一版本发行版,并且如果不能仅使用安装脚本,则始终记录您使用的版本。

如下安装Keras:(dlwin36) $$ pip install keras

安装tensorflow-gpu1.8.0(独奏,或作为Keras后端)

运行以下命令来安装Tensorflow:$ pip install tensorflow-gpu 如果您希望TensorFlow成为默认Keras后端,请定义一个KERAS_BACKEND以该值命名的系统环境变量tensorflow。

安装cntk-gpu

2.5.1(单独或作为Keras后端)

截至记录这个环节,安装CNTK GPU如下:(dlwin36) $ pip install cntk-gpu如果您希望CNTK成为默认的Keras后端,请定义一个KERAS_BACKEND以该值命名的系统环境变量cntk。

安装mxnet-cu901.2.0(独奏,或作为Keras后端)

MXNet是一个深度学习框架,有亚马逊的强大支持(通过AWS)。Microsoft也支持Azure。要安装它,请运行以下命令:(dlwin36) $ pip install mxnet-cu90如果您希望MXNet成为默认Keras后端,请定义一个KERAS_BACKEND以该值命名的系统环境变量mxnet。

安装pytorch0.4.0

PyTorch是Facebook AI Research(FAIR)对Google Tensorflow的回应。只有版本v0.4.0才正式支持Windows(x64)。安装程序需要安装

pytorch,cuda90等torchvision,首先,运行以下命令:(dlwin36) $ conda install pytorch其次,torchvision用这个命令安装:(dlwin36torch) $ pip install torchvision如果您在Windows上使用PyTorch存在问题,我强烈建议您阅读他们的Windows常见问题解答。


分享到:


相關文章: