![OpenCV+TensorFlow深度学习与计算机视觉实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/886/25456886/b_25456886.jpg)
2.3 TensorFlow类库的下载与安装(基于GPU模式)
2.2节中安装的是基于CPU模式的TensorFlow类库,这也是一般默认安装的TensorFlow模式,而往往在进行大规模数据计算时需要安装基于GPU模式的TensorFlow,输入如下代码:
pip install tensorflow-gpu
等待提示成功后即可认为基于GPU模式的TensorFlow安装完毕。但是如果需要真正使用GPU模式对数据进行处理,除了安装tensorflow-gpu库包以外,还需要安装CUDA与cuDNN,这是NVIDIA为了使用GPU进行程序运算专门提供的工具包。
2.3.1 CUDA配置
由于本书使用的是最新的tensorflow-gpu版本,其对应cuda 9.0.dll,因此就要下载cuda 9.0对应Windows版本的安装文件。
(1)下载地址:https://developer.nvidia.com/cuda-90-download-archive。
(2)下一步是选择下载的版本(如图2-18所示),这里NVIDIA提供了多种版本,请读者自行选择对应的操作系统以及版本号。
![](https://epubservercos.yuewen.com/907465/13908176505510706/epubprivate/OEBPS/Images/Figure-P31_1251.jpg?sign=1739368063-OEMOfBSbx2z7Z4G1a2qA2ZJZqBfPghtK-0-cecada9f387e2e83dd4c3d959746e7db)
图2-18 选择的版本号
(3)还需注意最后的Installer Type选项,exe(network)是在线安装版(如图2-19所示),也就是执行这个安装程序需要联网。exe(local)是离线安装版(如图2-20所示),这个文件比较大。选完后,单击下面的Download按钮就可以下载。
![](https://epubservercos.yuewen.com/907465/13908176505510706/epubprivate/OEBPS/Images/Figure-P32_1269.jpg?sign=1739368063-6dlvhlhnkkGGMPOI0kx424msrO48DkiW-0-916413b8ec3290028f8d9dd52b51e659)
图2-19 在线安装程序
![](https://epubservercos.yuewen.com/907465/13908176505510706/epubprivate/OEBPS/Images/Figure-P32_1279.jpg?sign=1739368063-uO3O43IExnk1h04LvjNzl9bjPKbmJfiP-0-a34c5e188fb0aff59029a33b2d36a6d9)
图2-20 离线下载程序
(4)下载完成后,双击运行文件然后单击OK按钮,等进度条走完,就会进入安装界面,如图2-21所示。
![](https://epubservercos.yuewen.com/907465/13908176505510706/epubprivate/OEBPS/Images/Figure-P32_1291.jpg?sign=1739368063-iOFmWCd4plwxiNmWQDurEHGyLJSTF8bg-0-a69983d36b35226a9295f1a7bc896f47)
图2-21 进入安装界面
(5)之后继续下一步,进入加载界面,如图2-22所示。
![](https://epubservercos.yuewen.com/907465/13908176505510706/epubprivate/OEBPS/Images/Figure-P33_1303.jpg?sign=1739368063-2bGH2iE9R9VFso8Y4UL0hT6Ho0AWDm2E-0-461dfa46a3b13456928498fc808d3008)
图2-22 进入加载界面
(6)检查系统兼容性,如果检测通过了,那么恭喜你,你的显卡可以安装CUDA,如果没有通过,只能抱歉地告诉你,只能pip uninstall tensorflow-gpu,然后执行pip install tensorflow,这种情况是你的电脑显卡不支持tensorflow-gpu加速。
(7)之后是软件许可协议,如图2-23所示,单击“同意并继续”按钮。
![](https://epubservercos.yuewen.com/907465/13908176505510706/epubprivate/OEBPS/Images/Figure-P33_1307.jpg?sign=1739368063-CeX2p7M5cZ8miCjx33ZbYVgI8LbeC4FX-0-6cbb80f14fd8d7f9a32f6f9e38ea201d)
图2-23 软件许可协议
(8)此时出现安装选项,如图2-24所示。选中“精简”单选按钮,然后单击“下一步”按钮,之后等待安装完成即可。
![](https://epubservercos.yuewen.com/907465/13908176505510706/epubprivate/OEBPS/Images/Figure-P34_1321.jpg?sign=1739368063-QIssHiEdIGIuTHQusnXyVZ3MBqCc2WGP-0-fef32fa796f58b98b1362353c64bea88)
图2-24 选择安装模式
(9)完成后,在环境变量检查PATH路径。在计算机桌面上的“计算机”图标上右击,打开属性→高级系统设置→环境变量,发现已经有CUDA_PATH和CUDA_PATH_V9_0两个环境变量。
CUDA_PATH是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA9.0,仅仅如此是不够的,还需要在环境变量里的PATH全局变量中加入bin和lib\x64目录的路径:
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0 CUDA_LIB_PATH = %CUDA_PATH%\lib\x64 CUDA_BIN_PATH = %CUDA_PATH%\bin CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64 CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
打开cmd,输入$ nvcc -V可以验证CUDA的安装是否成功。
2.3.2 cuDNN配置
对于TensorFlow而言,真正实现加速的是cuDNN,cuDNN调用的是CUDA显卡驱动。所以最后我们要配置cuDNN这个模块。
cuDNN的全称为NVIDIA CUDA Deep Neural Network library,是NVIDIA专门针对深度神经网络(Deep Neural Networks)中的基础操作而设计的基于GPU的加速库。cuDNN为深度神经网络中的标准流程提供了高度优化的实现方式,例如convolution、pooling、normalization以及activation layers的前向以及后向过程。
cuDNN只是NVIDIA深度神经网络软件开发包中的其中一种加速库。想了解NVIDIA深度神经网络加速库中的其他包,请访问链接https://developer.nvidia.com /deep-learning-software。
下面我们说一下正确安装cuDNN的方式,其实按官方安装说明进行安装就可以了。
(1)从https://developer.nvidia.com/cudnn上下载cuDNN相应版本的压缩包(可能需要注册或登录)。
(2)如果这个压缩包不是.tgz格式的,把这个压缩包重命名为.tgz格式。解压当前的.tgz格式的软件包到系统中的任意路径,解压后的文件夹名为CUDA。文件夹中包含三个子文件夹:一个为include;一个为lib;还有一个是bin。
(3)复制上述3个文件夹到CUDA_PATH指定的路径下面(见图2-25)。检查一下环境变量中是否有lib/x64文件夹的配置,这一步很重要。
![](https://epubservercos.yuewen.com/907465/13908176505510706/epubprivate/OEBPS/Images/Figure-P35_1367.jpg?sign=1739368063-NFVEP5Y1Ra0r1u6h7tN4xNqqc4dT6mK5-0-9168c8012f8471909540f2a9446bf768)
图2-25 解压后的cuDNN文件
(4)之后仿照上一节的代码对其进行验证。这里需要注意的是,第一次使用tensorflow-gpu模式进行处理的时候,由于需要对显卡进行甄别,加载的速度较慢,同时打印的内容也较多,如图2-26所示。
![](https://epubservercos.yuewen.com/907465/13908176505510706/epubprivate/OEBPS/Images/Figure-P35_1377.jpg?sign=1739368063-QfFdY9xn8aS3WiKjQ2z1O1Pfekrfqdws-0-f12d7ffc2cf6bf63f5f1a8b4d54ccad9)
图2-26 第一次加载tensorflow-gpu模式