1、配置流程概览
1.配置cuda与cudnn
2.配置anaconda
3.在anaconda中配置tensorflow
1.1 什么是CUDA和Cudnn
首先我们要明白几个概念以及他们之间的关系:显卡驱动、CUDA以及Cudnn
- 显卡驱动:显卡驱动就是用来驱动显卡的程序,它是硬件所对应的软件。打一个不是很恰当的比喻,操作系统就像一个人,显卡就比作一辆车,显卡驱动就像车钥匙,没有对应的驱动,操作系统就无法调用对应的硬件。
- CUDA:CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。CUDA的本质是一个工具包(ToolKit)
- Cudnn:NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中。
- CUDA与CUDNN的关系
CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。
cuDNN是一个SDK,是一个专门用于神经网络的加速包,注意,它跟我们的CUDA没有一一对应的关系,即每一个版本的CUDA可能有好几个版本的cuDNN与之对应,但一般有一个最新版本的cuDNN版本与CUDA对应更好。 - CUDA与显卡驱动
NVIDIA的显卡驱动器与CUDA并不是一一对应,CUDA本质上只是一个工具包而已,所以我可以在同一个设备上安装很多个不同版本的CUDA工具包。一般情况下,我只需要安装最新版本的显卡驱动,然后根据自己的选择选择不同CUDA工具包就可以。但是使用的CUDA版本不能高于自己的显卡驱动版本。
1.2 tensorflow各个版本的CUDA以及Cudnn版本对应关系
相应的网址为:
https://www.tensorflow.org/install/source#common_installation_problems
https://www.tensorflow.org/install/source_windows
版本 | Python 版本 | 编译器 | 编译工具 | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.0.0-alpha0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.19.2 | 7.4.1以及更高版本 | CUDA 10.0 (需要 410.x 或更高版本) |
tensorflow_gpu-1.13.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.19.2 | 7.4 | 10.0 |
tensorflow_gpu-1.12.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.11.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.9.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.11.0 | 7 | 9 |
tensorflow_gpu-1.8.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.10.0 | 7 | 9 |
tensorflow_gpu-1.7.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
tensorflow_gpu-1.6.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
tensorflow_gpu-1.5.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.8.0 | 7 | 9 |
tensorflow_gpu-1.4.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.5.4 | 6 | 8 |
tensorflow_gpu-1.3.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.5 | 6 | 8 |
tensorflow_gpu-1.2.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.5 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 2.7、3.3-3.6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
2、具体配置
2.1 CUDA与CUDNN
CUDA的下载地址为:https://developer.nvidia.com/cuda-downloads
2.2 CUDNN
CUDnn的下载地址为:https://developer.nvidia.com/rdp/cudnn-archive
2.3 Anaconda
Anaconda的下载地址为:https://developer.nvidia.com/cuda-downloads
这里将两个都勾选,然后一路next
2.4 tensorflow
- 打开Anaconda Prompt,创建虚拟环境:conda create -n tensorflow python=3.6
- 激活tensorflow环境 activate tensorflow
- 安装tensorflow
这里介绍两种方法
- 如果使用比较新的tensorflow-gpu版本,使用
pip install tensorflow-gpu==1.14 -i https://pypi.tuna.tsinghua.edu.cn/simple
//如果清华源不行 豆瓣源比较好用
- 如果是比较老版本的(例如tensorflow-gpu==1.4)
-
搜索tf
anaconda search -t conda tensorflow-gpu
接下来选择一个源地址
-
安装tf
conda install --channel https://conda.anaconda.org/aaronzs tensorflow-gpu=1.4.0
最后一行会出现安装方式,如图所示
2.5 测试是否配置成功
输入python,进入python命令行
3、遇到的问题以及解决方案
conda常用的命令。
1)conda list 查看安装了哪些包。
2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境
- 虚拟环境装烂了
使用命令conda remove -n your_env_name(虚拟环境名称) --all, 即可删除环境(釜底抽薪)。
跑tensorflow时遇到OOM问题
选择降低每一块的大小
4、参考文章
tensorflow各个版本的CUDA以及Cudnn版本对应关系
CUDA与cuDNN
https://blog.csdn.net/u012620515/article/details/78792670