从零开始的深度学习

一、工具介绍

  • 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版本。

  1. 查看显卡型号

查看显卡:右键桌面 我的电脑(此电脑)->属性->设备管理器->显示适配器->查看显卡型号
如果桌面没有 我的电脑:右键桌面空白处->个性化->主题->桌面图标设置->勾选计算机

此处我的显卡是 NVIDIA Quadro K620
在这里插入图片描述

  1. 根据显卡型号下载驱动

下载地址:https://www.nvidia.cn/Download/index.aspx?lang=cn

在这里插入图片描述

根据型号选择对应驱动,点击搜索。跳转到下载页面下载即可。

  1. 安装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 ToolkitLinux x86_64 Driver VersionWindows 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

安装完成设置环境变量:

# 编辑用户目录下的.bashrc文件
cd ~
vim .bashrc

# 添加如下内容
export PATH=$HOME/cuda_10.2/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/cuda_10.2/lib64

# 激活环境变量
source ~/.bashrc

测试是否安装成功:
nvcc -V
可以正常执行说明安装成功。

3. 下载cuDNN

官网下载地址:https://developer.nvidia.com/rdp/cudnn-archive (下载需要注册NVIDIA账号)
根据CUDA版本选择cuDNN
在这里插入图片描述

安装cuDNN

# 解压cuDNN
tar -zxvf cudnn-10.2.tgz

# 将cuDNN文件复制到CUDA Toolkit安装目录中
cp cuda/include/cudnn.h ~/cuda_10.2/include/
cp cuda/lib64/libcudnn* ~/cuda_10.2/lib64/

# 赋予执行权限
chmod a+r ~/cuda_10.2/include/cudnn.h
chmod a+r ~/cuda_10.2/lib64/libcudnn*

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

# 配置国内镜像清华源,下载加速
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/

# 其他
conda config --set show_channel_urls yes
conda config --set ssl_verify false

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

官网地址:https://pytorch.org/get-started/locally/
在这里插入图片描述

选择PyTorch版本(1.9.0),操作系统版本(Windows),包管理器(Conda),语言(Language),计算平台(CUDA 10.2)
得到安装命令:conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
命令中 -c 后接的是官方默认源,如果比较慢,可以使用清华源(ps:好像也不快,经常下载失败):

conda config --add channels  https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda install pytorch torchvision torchaudio cudatoolkit=10.2

同理包管理选择pip也可以:

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

手动安装是为了解决自动下载安装总是由于网络问题失败的问题。
安装前需要下载需要的包,地址:

手动安装,最值得注意的是选择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:

pip install ./torchvision-0.5.0+cpu-cp37-cp37m-win_amd64.whl
pip install ./torch-1.4.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 版本编译器构建工具cuDNNCUDA
tensorflow-2.4.03.6-3.8GCC 7.3.1Bazel 3.1.08.011.0
tensorflow-2.3.03.5-3.8GCC 7.3.1Bazel 3.1.07.610.1
tensorflow-2.2.03.5-3.8GCC 7.3.1Bazel 2.0.07.610.1
tensorflow-2.1.02.7、3.5-3.7GCC 7.3.1Bazel 0.27.17.610.1
tensorflow-2.0.02.7、3.3-3.7GCC 7.3.1Bazel 0.26.17.410.0
tensorflow_gpu-1.15.02.7、3.3-3.7GCC 7.3.1Bazel 0.26.17.410.0
tensorflow_gpu-1.14.02.7、3.3-3.7GCC 4.8Bazel 0.24.17.410.0
tensorflow_gpu-1.13.12.7、3.3-3.7GCC 4.8Bazel 0.19.27.410.0
tensorflow_gpu-1.12.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.11.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.10.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.9.02.7、3.3-3.6GCC 4.8Bazel 0.11.079
tensorflow_gpu-1.8.02.7、3.3-3.6GCC 4.8Bazel 0.10.079
tensorflow_gpu-1.7.02.7、3.3-3.6GCC 4.8Bazel 0.9.079
tensorflow_gpu-1.6.02.7、3.3-3.6GCC 4.8Bazel 0.9.079
tensorflow_gpu-1.5.02.7、3.3-3.6GCC 4.8Bazel 0.8.079
tensorflow_gpu-1.4.02.7、3.3-3.6GCC 4.8Bazel 0.5.468
tensorflow_gpu-1.3.02.7、3.3-3.6GCC 4.8Bazel 0.4.568
tensorflow_gpu-1.2.02.7、3.3-3.6GCC 4.8Bazel 0.4.55.18
tensorflow_gpu-1.1.02.7、3.3-3.6GCC 4.8Bazel 0.4.25.18
tensorflow_gpu-1.0.02.7、3.3-3.6GCC 4.8Bazel 0.4.25.18
  • Windows GPU
版本Python 版本编译器构建工具cuDNNCUDA
tensorflow_gpu-2.4.03.6-3.8MSVC 2019Bazel 3.1.08.011.0
tensorflow_gpu-2.3.03.5-3.8MSVC 2019Bazel 3.1.07.610.1
tensorflow_gpu-2.2.03.5-3.8MSVC 2019Bazel 2.0.07.610.1
tensorflow_gpu-2.1.03.5-3.7MSVC 2019Bazel 0.27.1-0.29.17.610.1
tensorflow_gpu-2.0.03.5-3.7MSVC 2017Bazel 0.26.17.410
tensorflow_gpu-1.15.03.5-3.7MSVC 2017Bazel 0.26.17.410
tensorflow_gpu-1.14.03.5-3.7MSVC 2017Bazel 0.24.1-0.25.27.410
tensorflow_gpu-1.13.03.5-3.7MSVC 2015 update 3Bazel 0.19.0-0.21.07.410
tensorflow_gpu-1.12.03.5-3.6MSVC 2015 update 3Bazel 0.15.07.29.0
tensorflow_gpu-1.11.03.5-3.6MSVC 2015 update 3Bazel 0.15.079
tensorflow_gpu-1.10.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.9.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.8.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.7.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.6.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.5.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.4.03.5-3.6MSVC 2015 update 3Cmake v3.6.368
tensorflow_gpu-1.3.03.5-3.6MSVC 2015 update 3Cmake v3.6.368
tensorflow_gpu-1.2.03.5-3.6MSVC 2015 update 3Cmake v3.6.35.18
tensorflow_gpu-1.1.03.5MSVC 2015 update 3Cmake v3.6.35.18
tensorflow_gpu-1.0.03.5MSVC 2015 update 3Cmake v3.6.35.18

注:其实TensorFlow 2.x 以后不再区分CPU版和GPU版,上述两个命令只在 1.x 版本有区别。

2.4.3 手动下载地址

https://pypi.org/project/tensorflow/#files
手动下载后,pip安装即可,注意python版本、操作系统和处理器架构。

三、python基础语法

3.1、基本数据类型

3.2、控制流程

3.3、函数

3.4、面向对象

3.5、常用系统编程

文件IO

四、深度神经网络

4.1、张量与张量运算

4.2、数据处理

4.3、网络模型

模型结构
模型参数

五、损失函数

六、卷积神经网络

经典模型

七、循环神经网络

经典模型

八、GAN网络

经典模型

九、Transformer

经典模型

十、论文阅读与开源项目

十一、工程实践

pytorch转tensorflow

模型轻量化
模型量化
模型剪枝

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值