从零开始的深度学习
主要内容:
- 安装NVIDIA GPU驱动
- 安装CUDA Toolkit
- 安装cuDNN
- 安装Conda(附带python)
- 安装PyTorch
- 安装TensorFlow
一、工具介绍
-
NVIDIA GPU驱动:nvidia-smi是nvidia 的系统管理接口,一般安装NVIDIA GPU驱动后即可使用。
-
CUDA Toolkit:CUDA(Compute Unified Device Architecture),是NVIDIA推出的运算平台,AMD也有类似的平台 ROCm,但并不成熟。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
-
cuDNN:NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如Tensorflow、pytorch等。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。
-
Conda:Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。
- 简单来说就是可以创建多个虚拟环境,各个虚拟环境互不干扰,在每个环境中可以装一个版本的python,以及各种版本的软件包。
-
PyTorch:PyTorch是一个开源的Python机器学习库,提供两个高级功能:1、具有强大的GPU加速的张量计算(如NumPy)。2、包含自动求导系统的深度神经网络。
-
TensorFlow:TensorFlow™是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief。
总结:NVIDIA GPU驱动、CUDA Toolkit、cuDNN作用是使用NVIDIA进行GPU加速,如果只使用CPU或AMD显卡则不需要。Conda方便后面环境配置和软件管理。PyTorch和TensorFlow是两个不同的深度学习框架,PyTorch学术界使用较为广泛,方便简单,易于上手。TensorFlow工业界使用较为广泛,泛用性好,被更多框架和平台支持。
二、环境配置
2.1、GPU相关(可选)
如果电脑GPU不是NVIDIA,则只能使用CPU,无法进行本小节的配置;是NVIDIA GPU,但只想使用CPU,也无需本小节的配置。建议初学者初期只使用CPU。
2.1.1、Windows
1. 下载安装NVIDIA GPU驱动
检查自己是否安装:打开cmd命令行,输入nvidia-smi,回车键运行,能运行成功说明已经正常安装。
其中Driver Version是驱动版本号,CUDA Version可能是支持的CUDA最高版本,并不是当前运行的CUDA版本。
- 查看显卡型号
查看显卡:右键桌面 我的电脑(此电脑)->属性->设备管理器->显示适配器->查看显卡型号 如果桌面没有 我的电脑:右键桌面空白处->个性化->主题->桌面图标设置->勾选计算机
此处我的显卡是 NVIDIA Quadro K620
- 根据显卡型号下载驱动
下载地址:
根据型号选择对应驱动,点击搜索。跳转到下载页面下载即可。
- 安装NVIDIA GPU驱动
点击安装程序,选择安装包解压路径
选项自定义安装
选择要安装的组件,GPU加速只安装图形驱动程序即可;其他RTX桌面管理、HD音频驱动程序根据自己需要安装。
重启,检查nvidia-smi命令是否可以运行
2. 下载安装CUDA Toolkit
根据NVIDIA驱动版本选择对应的CUDA下载,CUDA与NVIDIA版本对应关系如下: 官网文档:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
CUDA Toolkit | Linux x86_64 Driver Version | Windows x86_64 Driver Version |
---|---|---|
CUDA 11.0.3 Update 1 | >= 450.51.06 | >= 451.82 |
CUDA 11.0.2 GA | >= 450.51.05 | >= 451.48 |
CUDA 11.0.1 RC | >= 450.36.06 | >= 451.22 |
CUDA 10.2.89 | >= 440.33 | >= 441.22 |
CUDA 10.1 (10.1.105 general release, and updates) | >= 418.39 | >= 418.96 |
CUDA 10.0.130 | >= 410.48 | >= 411.31 |
CUDA 9.2 (9.2.148 Update 1) | >= 396.37 | >= 398.26 |
CUDA 9.2 (9.2.88) | >= 396.26 | >= 397.44 |
CUDA 9.1 (9.1.85) | >= 390.46 | >= 391.29 |
CUDA 9.0 (9.0.76) | >= 384.81 | >= 385.54 |
官网下载地址:https://developer.nvidia.com/cuda-toolkit-archive 选择合适的版本,目前10.x版本使用较多。
之后选择操作系统(Windows),指令集架构(x86_64),系统版本(Win10),安装类型(本地安装local)
选择完成后,点击下方的 Base Installer 下载安装;Base Installer下面的Patch补丁包可以不下载安装(可选)。
双击下载的安装包,选择解压路径,安装完成解压内容会自动删除; 解压完成,开始安装,选择自定义安装:
取消Driver components,即不安装驱动,前面已经安装。
选择安装路径并记住路径
安装完成,运行 nvcc -V
,能够正常执行,则说明安装成功。
3. 下载cuDNN
官网下载地址:https://developer.nvidia.com/rdp/cudnn-archive (下载需要注册NVIDIA账号) 根据CUDA版本选择cuDNN:
下载完成后解压只有一个cuda文件夹,文件夹下包含三个子文件夹:
将三个子文件夹中的文件,分别复制到CUDA Toolkit安装路径下对应的文件夹中
- cuDNN中bin目录下的文件移动到 CUDA 的 bin 目录中
- cuDNN目录中的 include 中的文件移动到 CUDA 的 include 目录中
- cuDNN目录中的 lib 中的文件移动到 CUDA 的 lib 目录中
复制完成,验证是否成功 通过NVIDIA提供的 deviceQuery.exe 和 bandwidthTest.exe 来查看GPU的状态,两者均在安装目录的 extras\demo_suite文件夹中
执行返回 Result = PASS
说明安装成功。
2.1.2、Linux
1. 安装NVIDIA GPU驱动
如果你使用Linux,我相信你应该有一定的基础,由于目前手上没有Linux设备,这里不再演示。 安装过程,可参考知乎专栏:https://zhuanlan.zhihu.com/p/59618999
2. 安装CUDA Toolkit
官网下载地址:https://developer.nvidia.com/cuda-toolkit-archive 根据系统和NVIDIA驱动版本,选择合适的CUDA。
选择完成后,下方给出下载安装指令,执行 Base Installer 进行下载安装;Base Installer下面的Patch补丁包可以不下载安装(可选)。
这里的下载命令是:
wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
安装命令是:
sudo sh cuda_10.2.89_440.33.01_linux.run
如果没有root权限,可以安装在用户目录,此时安装命令:
sh cuda_10.2.89_440.33.01_linux.run --silent --toolkit --toolkitpath=$HOME/cuda_10.2 --installpath=$HOME/cuda_10.2
安装完成设置环境变量:
1 | # 编辑用户目录下的.bashrc文件 |
测试是否安装成功:
nvcc -V
可以正常执行说明安装成功。
3. 下载cuDNN
官网下载地址:https://developer.nvidia.com/rdp/cudnn-archive (下载需要注册NVIDIA账号) 根据CUDA版本选择cuDNN
安装cuDNN
1 | # 解压cuDNN |
2.2、安装Conda
conda分为anaconda和miniconda。anaconda是包含一些常用包的版本,miniconda则是精简版,需要什么装什么,这里介绍miniconda的安装。 官网地址:https://docs.conda.io/en/latest/miniconda.html
2.2.1、安装
进入官网:
- Windows installers一栏就是Windows安装包
- Linux installers一栏就是Linux安装包
选择对应的操作系统和conda版本即可。 一般安装MiniConda3,python版本无所谓,3.x以上都可以,后面可以根据需要自行更改。
安装完成后,检测是否正常:conda info -e
2.2.2、配置
执行如下命令,配置Miniconda
1 | # 配置国内镜像清华源,下载加速 |
2.2.3、常用命令参数
- 查看虚拟环境:
conda info -e
- 激活虚拟环境:
conda activate myTorch
- activate 后是虚拟环境名
- 退出虚拟环境:
conda deactivate
- 删除虚拟环境:
conda remove -n 虚拟环境名 --all
- 安装某个软件到当前虚拟环境:
conda install 包名 -y
- 卸载当前虚拟环境中的某个软件包:
conda uninstall 包名 -y
- 安装某个软件包到指定虚拟环境中:
conda install -n 虚拟环境名 包名 -y
- 卸载指定虚拟环境中的某个软件包:
conda uninstall -n 虚拟环境名 包名 -y
2.3、安装PyTorch
PyTorch的安装分为GPU版和CPU版,使用官网命令安装和手动安装需要注意选择。
- 创建虚拟环境:
conda create -n myTorch python=3.6.9
- -n 后接的myTorch是自定义的虚拟环境名,自己随便起名;python=3.6.9指定该虚拟环境下使用的python版本。
- 激活环境:
conda activate myTorch
之后的安装都在此虚拟环境下进行!
2.3.1 官网命令安装PyTorch
官网地址:
选择PyTorch版本(1.9.0),操作系统版本(Windows),包管理器(Conda),语言(Language),计算平台(CUDA 10.2)
得到安装命令:conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
命令中 -c
后接的是官方默认源,如果比较慢,可以使用清华源(ps:好像也不快,经常下载失败):
1 | conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ |
同理包管理选择pip也可以:
1 | pip3 install torch==1.9.0+cu102 torchvision==0.10.0+cu102 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html |
这里可以看到使用pip安装,需要显式的指定pytorch和torchvison、torchaudio的版本。
2.3.2 手动安装PyTorch
手动安装是为了解决自动下载安装总是由于网络问题失败的问题。 安装前需要下载需要的包,地址:
- 官网:https://download.pytorch.org/whl/torch_stable.html
- 清华:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/torch/、https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/torchvision/
手动安装,最值得注意的是选择torch和torchvision的版本对应关系。
pytrch=1.4、torchvision=0.5 pytorch=1.6、torchvision=0.7 torch=1.9、torchvision=0.10 其他版本可以自行百度
以官网为例,访问上述地址,可以看到需要的whl包文件。
软件包格式:设备(cpu/gpu)-软件包名-包版本-python版本-操作系统_处理器
- 如果使用的是cpu那么就选cpu版本,如果适用gpu那么需要根据安装的cuda版本选择,比如安装了cuda10.2就选择cu102。
- 如果使用的python版本是3.6.x就选择cp36-cp36m,其他版本对应选择即可。
- 如果操作系统是Windows,就选择win;如果是linux就选择linux。
- 处理器架构目前基本都是64位,amd64和x86_64相同都是64位。
使用下载工具下载对应的torch和torchvision,下载完成使用pip命令安装。 假如下载的文件分别为:torchvision-0.5.0+cpu-cp37-cp37m-win_amd64.whl、torch-1.4.0+cpu-cp37-cp37m-win_amd64.whl:
1 | pip install ./torchvision-0.5.0+cpu-cp37-cp37m-win_amd64.whl |
2.4、安装TensorFlow
TensorFlow的安装也分为GPU版和CPU版,CPU版本安装较简单;但如果安装GPU版,则需要满足与cuDNN和CUDA的关系。否则可能无法使用GPU加速。 另外TensorFlow 1.x 和 2.x 变动较大,建议安装 2.x 版本,相对简单易用。
2.4.1 CPU版本安装
使用pip直接输入以下命令:
pip install 'tensorflow==2.2.0' -i [http://pypi.doubanio.com/simple/](http://pypi.doubanio.com/simple/) --trusted-host pypi.doubanio.com
其中 2.2.0是版本号,-i 后指定安装源,--trusted-host 表示信任安装源,防止无法下载。
2.4.2 GPU版本安装
命令与cpu版本类似,但需要保证TensorFlow版本与cuDNN和CUDA版本对应:
pip install 'tensorflow-gpu==2.2.0' -i [http://pypi.doubanio.com/simple/](http://pypi.doubanio.com/simple/) --trusted-host pypi.doubanio.com
只需要在tensorflow后加上-gpu即会下载gpu版本。
下方是官网给出的对应关系:
- Linux GPU
版本 | Python 版本 | 编译器 | 构建工具 | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow-2.4.0 | 3.6-3.8 | GCC 7.3.1 | Bazel 3.1.0 | 8.0 | 11.0 |
tensorflow-2.3.0 | 3.5-3.8 | GCC 7.3.1 | Bazel 3.1.0 | 7.6 | 10.1 |
tensorflow-2.2.0 | 3.5-3.8 | GCC 7.3.1 | Bazel 2.0.0 | 7.6 | 10.1 |
tensorflow-2.1.0 | 2.7、3.5-3.7 | GCC 7.3.1 | Bazel 0.27.1 | 7.6 | 10.1 |
tensorflow-2.0.0 | 2.7、3.3-3.7 | GCC 7.3.1 | Bazel 0.26.1 | 7.4 | 10.0 |
tensorflow_gpu-1.15.0 | 2.7、3.3-3.7 | GCC 7.3.1 | Bazel 0.26.1 | 7.4 | 10.0 |
tensorflow_gpu-1.14.0 | 2.7、3.3-3.7 | GCC 4.8 | Bazel 0.24.1 | 7.4 | 10.0 |
tensorflow_gpu-1.13.1 | 2.7、3.3-3.7 | 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 |
- Windows GPU
版本 | Python 版本 | 编译器 | 构建工具 | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.4.0 | 3.6-3.8 | MSVC 2019 | Bazel 3.1.0 | 8.0 | 11.0 |
tensorflow_gpu-2.3.0 | 3.5-3.8 | MSVC 2019 | Bazel 3.1.0 | 7.6 | 10.1 |
tensorflow_gpu-2.2.0 | 3.5-3.8 | MSVC 2019 | Bazel 2.0.0 | 7.6 | 10.1 |
tensorflow_gpu-2.1.0 | 3.5-3.7 | MSVC 2019 | Bazel 0.27.1-0.29.1 | 7.6 | 10.1 |
tensorflow_gpu-2.0.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.15.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.14.0 | 3.5-3.7 | MSVC 2017 | Bazel 0.24.1-0.25.2 | 7.4 | 10 |
tensorflow_gpu-1.13.0 | 3.5-3.7 | MSVC 2015 update 3 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3.5-3.6 | MSVC 2015 update 3 | Bazel 0.15.0 | 7.2 | 9.0 |
tensorflow_gpu-1.11.0 | 3.5-3.6 | MSVC 2015 update 3 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3.5-3.6 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | MSVC 2015 update 3 | Cmake v3.6.3 | 5.1 | 8 |
注:其实TensorFlow 2.x 以后不再区分CPU版和GPU版,上述两个命令只在 1.x 版本有区别。
2.4.3 手动下载地址
https://pypi.org/project/tensorflow/#files 手动下载后,pip安装即可,注意python版本、操作系统和处理器架构。
1 | pip install tensorflow-2.2.0-cp36-cp36m-win_amd64.whl |