人工神经网络已然成为现今最流行的机器学习工具,框架平台也在不断地完善升级,对GPU的依赖也越来越严重,在框架们升级的过程中会改进原有版本的错误并且提供很多美好的合理的新特性,会给使用者带来更多的便利,也让使用者对这个框架更有信心,让框架更加光彩夺目。
但是事实上,在大家为新版本的Pytorch和Tensorflow千呼万唤始出来欢呼雀跃的时候,角落里却有一小撮人为莫名其妙的环境错误抓耳挠腮。因为框架的正确运行需要配套固定版本的python、显卡驱动、CUDA、CUDNN,低了不行高了也不行。
那怎么查看各个环境的版本呢,各个框架需要什么版本的运行环境呢,每装一次查一次的我受够了,于是有了这篇博客,希望能帮大家多走一些弯路,少走一些捷径。
我的系统为Ubuntu 16.04
一、环境查看的方法
查看python版本
其实命令行进入python就会显示版本;
也可以:
~$ python --version
查看CUDA版本
~$ cat /usr/local/cuda/version.txt
查看GPU 型号
~$ lspci | grep -i nvidia
查看NVIDIA驱动版本
~$ sudo dpkg --list | grep nvidia-*
查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
这里会显示一些宏
比如我的显示:
#define CUDNN_MAJOR 7#define CUDNN_MINOR 4#define CUDNN_PATCHLEVEL 1--#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)#include "driver_types.h"
按照 CUDNN_VERSION的宏定义计算出来的是7401
但是CuDNN版本实际上为 7.4.1
查看Tensorflow版本
如果安装了pip或者conda可以运行
pip list
或者
conda list
找到其中Tensorflow查看版本
也可以进入python环境:
import tensorflow as tftf.__version__
查看Pytorch版本
安装了pip或者conda可以向上面一样运行
pip list
或者
conda list
找到其中叫做 torch 的包查看版本(注意不叫pytorch)
也可以进入python环境,输入:
import torchtorch.__version__
查看已经安装的Pytorch对应的CUDA版本
进入python环境,输入:
import torchtorch.version.cuda
查看已经安装的Pytorch对应的CUDNN版本
进入python环境,输入:
import torchtorch.backends.cudnn.version()
二、各环境版本配套要求
好啦,我们已经知道自己的环境是啥版本了,然后我们了解一下各个套件之间的依赖关系和配套的要求。
CUDA与NVIDIA驱动版本
/cuda/cuda-toolkit-release-notes/index.html
CUDA Toolkit and Compatible Driver Versions
TensorFlow与Python, CUDA, cuDNN的版本对应关系
/install/source#linux
CUDA、CUDNN和显卡驱动
引用自:/qq_27825451/article/details/89082978
1、显卡驱动与CUDA
CUDA和显卡驱动没有一一对应的关系
NVIDIA的显卡驱动器与CUDA并不是一一对应的哦,CUDA本质上只是一个工具包而已,所以我可以在同一个设备上安装很多个不同版本的CUDA工具包,比如我的电脑上同事安装了 CUDA 9.0、CUDA 9.2、CUDA 10.0三个版本。一般情况下,我只需要安装最新版本的显卡驱动,然后根据自己的选择选择不同CUDA工具包就可以了,但是由于使用离线的CUDA总是会捆绑CUDA和驱动程序,所以在使用多个CUDA的时候就不要选择离线安装的CUDA了,否则每次都会安装不同的显卡驱动,这不太好,我们直接安装一个最新版的显卡驱动,然后在线安装不同版本的CUDA即可。
2、cuDNN与CUDA
cuDNN与CUDA没有一一对应的关系
cuDNN是一个SDK,是一个专门用于神经网络的加速包,注意,它跟我们的CUDA没有一一对应的关系,即每一个版本的CUDA可能有好几个版本的cuDNN与之对应,但一般有一个最新版本的cuDNN版本与CUDA对应更好。
NVIDIA显卡以及对应的显卡驱动
/cuda-gpus
列出部分常见的Nvidia显卡型号
台式机
笔记本
Pytorch与CUDA的对应关系
Pytorch没有Tensorflow那么明确的表格,但是/get-started/locally/提供了最新的Pytorch各个环境的安装命令,从表格中可以看到环境需求。
现在(.08.28)最新的Pytorch为1.2 需求CUDA版本9.2或10.0
以往的Pytorch版本安装命令如下:
/get-started/previous-versions/
Installing with CUDA 9conda install pytorch=0.4.1 cuda90 -c pytorchorconda install pytorch=0.4.1 cuda92 -c pytorchInstalling with CUDA 8conda install pytorch=0.4.1 cuda80 -c pytorchInstalling with CUDA 7.5conda install pytorch=0.4.1 cuda75 -c pytorchInstalling without CUDAconda install pytorch=0.4.1 -c pytorch