2.3 搭建深度学习开发环境
如果读者采用租用云GPU服务器的方式,可以省去较为烦琐的开发环境软件安装工作,当使用个人电脑进行深度学习时,在确认具有基本的硬件设备后,还需要下载一系列与深度学习相关的软件并安装配置深度学习开发环境,好消息是这些软件均可免费使用。这里以Windows平台为例,介绍如何搭建深度学习开发环境。
2.3.1 安装配置GPU加速库
如果读者个人电脑配置有NVIDIA显卡,可以登录NVIDA官网https://de-veloper.nvidia.com/cuda-gpus查看其显卡型号对应的运算能力,确保满足不同深度学习框架的硬件要求,如Tensorflow 1.3版本要求GPU计算能力必须在3.0以上。如果满足GPU的硬件要求,则说明可以利用GPU加速深度学习运算,接下来需要安装CUDA驱动和cuDNN库。否则,只能采用CPU进行深度学习,读者可以跳过本小节的GPU驱动的安装过程,直接按照2.3.2小节方法安装Anaconda软件。
CUDA是NVIDIA推出的一种通用并行计算架构,该架构能够利用GPU的图形处理能力,大幅提升计算性能,而且支持Windows、Linux和MacOS三类主流操作系统。开发者可以登录https://developer.nvidia.com/cuda-downloads,根据个人操作系统类型及版本选择下载安装。由于安装过程中需要用到C++进行编译,因此安装之前要先确保系统安装有Visual Studio,否则安装过程会报错(图2-5)。
图2-5 CUDA下载页面
还需要注意的是,上述网址下载的为最新版的CUDA。由于CUDA版本更新过快,会与深度学习框架出现兼容性问题,如果需要CUDA的历史版本,可以登录https://developer.nvidia.com/cuda-toolkit-archive下载安装(图2-6)。本书安装的CUDA版本为10。
图2-6 CUDA历史版本下载页面
下载完成后,双击安装文件然后单击OK按钮,进入安装界面,按照提示进行安装既可,安装过程较为简单。安装结束后需要配置环境变量,在桌面时右键“此电脑”,选择“属性”打开系统窗口,然后选择并打开“高级系统设置”进入系统属性窗口,打开环境变量,然后将C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin, C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include, C:\Program Files\NVIDIA GPU Computing Toolkit\CU-DA\v10.0\lib\x64,这三个路径填到系统变量的Path中,这样环境变量就配置好了。
为验证CUDA是否安装成功,可以打开cmd窗口,输入nvcc-V,显示如下(图2-7),则CUDA安装成功。
图2-7 CUDA安装测试页面
对TensorFlow等深度学习框架而言,实现GPU加速的核心是cuDNN。cuDNN的全称为NVIDIA CUDA Deep Neural Network library,是NVIDIA专门针对深度神经网络中的基础操作而设计基于GPU的加速库。基本上所有的深度学习框架都支持cuDNN这一加速工具。下载cuDNN时需要注册NVIDIA账号,并且需要注意版本与CUDA版本的对应关系,本书下载的版本为7.4.1。下载的cuDNN为一压缩文件,解压完后并将其中的lib、bin、include直接粘贴覆盖CUDA安装路径内的对应文件夹,完成安装(图2-8)。
图2-8 cuDNN粘贴位置图
2.3.2 Anaconda
Anaconda(中文翻译为蟒蛇)是目前最受欢迎的Python数据科学和机器学习平台,用于大规模数据处理、预测分析和科学计算,支持Windows、Linux、Mac操作系统。Anaconda附带了1000多个数据包,conda命令行工具和Anaconda Navi-gator的桌面图形用户界面。提供的包管理功能解决了Windows平台安装第三方包经常失败的问题。而且具备的虚拟环境管理的功能解决了多版本Python并存、切换的问题。一般而言,使用Anaconda进行Python开发和机器学习比直接使用官方的Python更加便捷。
(1)下载和安装。Anaconda的下载网址是https://www.anaconda.com/dis-tribution/#download-section(图2-9)。
图2-9 Anaconda版本选择页面
在下载页面中需要选择操作系统版本和python的版本,读者可以根据自己的操作系统情况进行下载。笔者在此下载安装的是64位Windows系统的Python 3.7版。安装过程和其他Windows软件相似。此外,还可以从历史版本管理页面https://repo.anaconda.com/archive/下载各种不同的版本(图2-10)。
图2-10 Anaconda历史版本管理页面
(2)Conda。Conda是一个开源的类库管理系统和环境管理系统,用于安装多个版本的类库及其依赖关系,并在它们之间轻松切换。Conda对类库的管理是通过命令行来实现的,可以通过anaconda Prompt打开Conda的命令窗口(图2-11)。
图2-11 Anaconda菜单
在命令窗口中,可以输入conda——version检测anaconda环境是否安装成功。如果想安装类库,可以在命令窗口输入conda install package_name,也可以在package_name后面增加==版本号,安装指定版本的类库。如conda install numpy==1.12是指安装1.12版的numpy。
当需要同时安装多个类库,如numpy、pandas、scipy,可以键入conda install numpy pandas scipy命令完成安装。如果安装的某个类库还有其他依赖类库,如scipy依赖numpy,则安装scipy时会自动安装numpy,可以避免使用者在安装和使用某个特定类库时遇到类库缺失的问题。
除了管理类库以外,Conda还是一个虚拟环境管理器。在利用Python进行数据分析、机器学习等领域时,由于代码的版本更新问题,运行他人的代码或尝试安装类库时往往需要指定版本的其他类库。而将同一类库的不同版本布置在同一个环境下无疑会为环境的管理和使用增添负担。因而,根据不同的任务要求,为不同应用需求创建相互分离的运行环境,能够避免不同任务之间的相互干扰和影响。上述为特定的任务而配置构建的环境一般被称为虚拟环境,创建虚拟环境能够让用户分割和管理不同应用项目。Conda允许用户方便地安装包括Python在内的不同版本的类库并实现快速切换。对虚拟环境管理的命令主要有Conda create、activate和deactivate。表中列出了Conda工具对类库和虚拟环境管理的常用命令(表2-1)。
表2-1 常见Conda命令及功能
(3)Anaconda Navigator图形用户界面。Anaconda也提供了Anaconda Navi-gator作为图形用户界面完成上述的类库安装和虚拟环境管理功能。其启动可以通过鼠标点击Anaconda Navigator菜单栏即启动或者打开“Anaconda Prompt”并键入命令anaconda-navigator打开如下Anaconda Navigator用户界面。分为home、environments、learning和community四个标签区域。
Home标签显示了可以使用Navigator管理的所有可用应用程序。第一次打开Navigator时,以下流行的Python应用程序已经安装:Jupyter Lab、Jupyter Notebook、Qt Console、Spyder、Vscode等。在每个应用程序框中,用户可以启动应用程序或者安装应用程序(图2-12)。
图2-12 Anaconda Navigator窗口
Environments Tab允许你管理已安装的虚拟环境,左列列出了环境名称列表,单击环境选中激活后,右列列出了当前虚拟环境中的类库。默认视图是显示已安装的包,单击列表旁边的箭头,可选择“未安装”“可升级”或“所有包”更改显示内容(图2-13)。
图2-13 Anaconda Navigator环境窗口
在Learning标签上,介绍了有关Navigator、Anaconda平台和开放数据科学的更多信息。在Community标签上,用户可以了解有关Navigator相关的活动,包括免费支持论坛和社交网络上发布的信息。
(4)使用Jupyter notebook。在Anaconda安装过程中集成安装了Python的开发工具,常用的包括Jupyter notebook。Jupyter notebook的本质是一个Web应用程序,是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释,具有笔记与代码结合起来、代码分段运行、便于数据可视化等优点。安装完Anaconda后可以通过命令菜单或Anaconda Navigator图形界面打开Jupyter notebook,但如果建立了某个虚拟环境,还需要在相应虚拟环境中再次安装Jupyter notebook(图2-14)。
图2-14 Jupyter notebook窗口
2.3.3 安装深度学习框架
通过安装Anaconda打造完个人的Python开发环境后,下一步就是安装深度学习框架。下面以安装TensorFlow和Keras为例介绍深度学习框架的安装过程。
(1)安装TensorFlow。安装TensorFlow可以在Anaconda Navigator图形界面中勾选安装,也可以打开Anaconda Prompt使用Conda命令进行安装,相对而言命令行安装更加方便高效。
TensorFlow有GPU和CPU两个版本,如果需要安装GPU版本的Tensor-Flow可以使用Conda install tensorflow-gpu==1.5.0,如果安装CPU版本的TensorFlow可以使用Conda install tensorflow==1.14.0。注意==后面的数字代表对应软件的版本号。
如果需要测试OpenCV是否安装成功,可在Jupyter notebook新建文件输入如下代码:
IMPORT TENSORFLOW AS TF
HELLO=TF.CONSTANT(‘HELLO, TENSORFLOW’)
SESS=TF.SESSION()
PRINT(SESS. RUN(HELLO))
输出结果为b'hello, TensorFlow',表明安装成功。
(2)安装Keras。如果需要安装Keras框架,注意使用pip(Python包管理工具,提供了对Python包的查找、下载、安装、卸载的功能)来安装。因为如果使用Conda来安装时,Conda自动安装一个新的TensorFlow版本,导致版本冲突。当使用pip命令安装后,Keras会使用之前安装的TensorFlow来作为底层运算后端(backend)。命令格式如下,本书示例采用的Keras版本为2.2.5。
pip install keras==2.2.5
测试如果需要测试Keras是否安装成功,可在Jupyter notebook新建文件输入如下代码:
IMPORT KERAS
当返回Using TensorFlow backend.则表明Keras安装成功。
总结以上开发环境的搭建过程可分为安装CUDA->安装cuDNN->安装Anaconda->安装深度学习框架等四个步骤,过程并不算复杂,但在安装过程中存在问题的主要原因在于软件更新过快而导致不同版本之间不兼容,因此建议读者按照本书测试通过的版本安装,或者参考网络提供的安装教程选择对应版本安装。