安装环境
操作系统:win7 64位
python版本:3.5.6
tensorflow-gpu1.10
CUDA9.0
cuDNN7.0
显卡:GTX970M
内存:16G
安装流程
安装前要做的
1.详细阅读Tensorflow官方文档
在 Windows 环境中从源代码构建
https://tensorflow.google.cn/install/source_windows
在这里我们可以查看不同版本的tensorflow_gpu对应的python版本,cuDNN版本,CUDA版本
2.查看显卡的计算力与适应的CUDA版本
在英伟达的官网上,我们可以查看支持CUDA的gpu与相应的计算力
https://developer.nvidia.com/cuda-gpus
显卡的计算力至少应当大于5.0
3.安装CUDA和cuDNN
安装tensorflow的cpu版本非常轻松简单,可以像安装其它python开源库那样直接使用pip来安装。但安装tensorflow的gpu版本时却不能如此。其最主要的原因是因为tensorflow gpu版本的源代码底层调用了由英伟达提供的gpu驱动接口,这样才能实现调用gpu帮我们进行并行计算的功能,所以我们必须得先安装英伟达提供的gpu驱动以及cudnn工具,通俗来讲就是我们要安装的CUDA和cuDNN。
CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员现在可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。
NVIDIACUDA®深度神经网络库(cuDNN),是用于深度神经网络的GPU加速库。cuDNN为标准例程提供高度优化的实现,例如前向和后向卷积,池化,规范化和激活层。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。
CUDA与cuDNN是平台与工具的关系。
对于tensorflow 1.10来说,对应的是CUDA 9.0和cudnn7.0
CUDA下载链接:
https://developer.nvidia.com/cuda-toolkit-archive
建议选择local下载方式
cuDNN下载链接:
https://developer.nvidia.com/rdp/cudnn-archive
注意下载前要注册英伟达账号,用过Geforce Experience的同学肯定不会陌生
在安装CUDA前,请安装VS2015的运行库。
运行CUDA安装包,安装软件会先运行一个系统检查,如果没有软硬件不兼容的情况就能继续进行下一步。若有不兼容情况,系统检查则会报错,无法进行下一步。如果报错了,就最先考虑下是不是自己的显卡不被该版本支持。建议安装之前先将自己的显卡驱动更新至最新版本,安装时采用自定义安装的模式。
cuDNN的Windows官方安装文档
cuDNN下载后是一个压缩包,解压后将文件直接替换至C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\目录下即可,这里是默认安装路径。当然你按照官方文档将文件分别替换置相应文件夹也没有问题。实际上我们会发现压缩包中的文件是原CUDA的文件夹中没有的,并没有文件被覆盖替换,即cuDNN是CUDA的扩展计算库,不会对原有CUDA造成其他影响,这也映证了前文的插入式设计。
4.安装python
我走的是通过Anaconda安装管理python版本的路线,因为conda可以方便地创建管理不同的python版本,因此下载anaconda的时候也无需安装指定的版本,直接下载安装最新版本,稍后再创建自己需要的python版本的虚拟环境即可。同时conda可以自动安装tensorflow-gpu的相关依赖包,不用我们自己去安装。
在Anaconda安装时选择默认设置即可,即不添加到PATH环境变量中,因为这会干扰其他软件(营造一个相对独立的环境)。推荐不安装至系统盘,因为随着使用,创建的虚拟环境和安装的包数量不断增多,文件夹占据的空间会不断变大。
使用Anaconda软件时,从“开始”菜单打开“Anaconda Navigator”或“Anaconda Prompt”(命令行模式)。
Anaconda下载链接如下:
https://www.anaconda.com/distribution/
conda相关的入门教程与常用命令等不在此赘述,可以自行上网搜索学习。
如果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 --set show_channel_urls yes
安装tensorflow-gpu
打开Anaconda Prompt
首先创建一个用于安装tensorflow-gpu的虚拟环境,直观起见,起名为tensorflow-gpu
conda create -n tensorflow-gpu python=3.5
激活虚拟环境
activate tensorflow-gpu
推荐通过conda命令安装tensorflow,将自动安装tensorflow-gpu所需的各种前置包。如果你不能理清tensorflow-gpu前置所需的各个包的版本,安装顺序等,请不要轻易使用pip命令。否则极容易出现安装包时不慎自动升级了python的现象。
#conda install package=version
conda install tensorflow-gpu=1.10
下面还有一些常用的小技巧
一般来说,tensorflow-gpu的安装是很难一次成功的。当安装至某一步我们举棋不定,不知道进一步安装包是否会破坏现有环境的平衡时,可以考虑克隆当前的环境,在克隆出来的环境中大胆尝试,大施拳脚。
复制某个环境
conda create --name new_env_name --clone old_env_name
删除某个环境
conda remove --name your_env_name --all
当conda命令默认安装的包不满足我们的需求时,可通过如下命令进行高级搜索。
#查询可安装的Tensorflow版本
anaconda search -t conda tensorflow-gpu
#选择一个合适的版本,在控制台查询相关信息。
anaconda show aaronzs/tensorflow-gpu
#按照上面输出的最后一行,使用如下指令开始安装
conda install --channel https://conda.anaconda.org/aaronzs tensorflow-gpu
环境变量的设置
进行Win7系统的环境变量设置
CUDA_PATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
CUDA_BIN_PATH:%CUDA_PATH%\bin
CUDA_LIB_PATH:%CUDA_PATH%\lib\Win32
CUDA_SDK_BIN:%CUDA_SDK_PATH%\bin\Win64
CUDA_SDK_LIB:%CUDA_SDK_PATH%\common\lib\x64
CUDA_SDK_PATH:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0
验证CUDA是否正确安装
在系统cmd中输入
nvcc -V
或者在命令行中运行C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe,可以得到GPU运行时的监测界面,则CUDA安装成功
验证Tensorflow-gpu是否安装成功
在python的交互式命令行中输入
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
这里我的虚拟环境名为test4
可以看到成功输出了“Hello, TensorFlow”
凡事动手多尝试,才能慢慢锻炼自己的能力,知易行难。希望这篇博客能给你的学习工作带来些许帮助!
参考资料
[1] https://www.cnblogs.com/hutao722/p/9342577.html
[2] https://blog.csdn.net/u014475479/article/details/81702392
[3] https://blog.csdn.net/omodao1/article/details/83241074
[4] https://www.jianshu.com/p/622f47f94784