Bootstrap

最详细新版本基于GPU的Pytorch深度学习新手保姆级图文详解教程

🧸🧸🧸此页面更新历史🧸🧸🧸

2024.9.27——第一版——GPU版的pytorch安装与配置


简介

💻PyTorch 是一个开源的深度学习框架,支持使用 GPU 加速计算,由 Facebook 的人工智能研究团队开发,并于 2016 年发布。

PyTorch 的主要特点包括:

  • 动态计算图: PyTorch 使用动态计算图,即在运行时构建计算图,可以方便地调试和修改模型。

  • Pythonic 编程风格: PyTorch 使用 Python 语言开发,语法与 Python 一致,更易于学习和使用。

  • 强大的 GPU 加速支持: PyTorch 支持使用 CUDA 和 cuDNN 进行 GPU 加速计算,可以显著提高深度学习模型的训练效率。

  • 丰富的预训练模型和数据集: PyTorch 提供了丰富的预训练模型和数据集,方便用户快速上手。

  • 活跃的社区和生态系统: PyTorch 拥有活跃的社区和丰富的资源,包括文档、教程、示例代码、开源项目等。

PyTorch 的主要应用领域包括:

  • 计算机视觉: 图像分类、目标检测、图像分割、图像生成等。

  • 自然语言处理: 文本分类、机器翻译、情感分析、问答系统等。

  • 语音识别: 语音识别、语音合成、语音增强等。

  • 强化学习: 游戏 AI、机器人控制、自动驾驶等。

PyTorch 的核心概念包括:

  • 张量 (Tensor): PyTorch 的基本数据结构,类似于 NumPy 的 ndarray,但支持 GPU 加速计算。

  • 自动微分 (Autograd): PyTorch 提供自动微分功能,可以自动计算神经网络的梯度。

  • 神经网络模块 (nn.Module): PyTorch 提供了一系列预定义的神经网络模块,例如卷积层、池化层、全连接层等,方便用户构建神经网络模型。

  • 优化器 (Optimizer): PyTorch 提供了一系列优化器,例如 SGD、Adam、RMSprop 等,用于优化神经网络模型的参数。

  • 损失函数 (Loss Function): PyTorch 提供了一系列损失函数,例如交叉熵损失、均方误差损失等,用于衡量神经网络模型的预测结果与真实标签之间的差距。


    pytorch的几个组件的关系

*️⃣首先我们先理解使用pytorch的几个组件的关系。其中组件主要分为三类:电脑GPU显卡、GPU驱动、CUDA(cuDNN是依赖于CUDA的,我们归为一类)

  • GPU 是中心组件。
  • GPU 驱动 与 GPU 相连,负责硬件与操作系统的通信。
  • CUDA 与 GPU 驱动和 GPU 相连,提供通用计算支持。
  • cuDNN 依赖 CUDA,用于深度学习优化

 GPU与CPU的计算原理与区别

GPU (Graphics Processing Unit) 和 CPU (Central Processing Unit) 是计算机中两种不同的处理器,它们在运行规则和功能上有显著的区别。

1. 运行规则:

  • CPU:

    • 采用冯·诺依曼架构,包含控制单元、算术逻辑单元、寄存器等组件。

    • 执行顺序指令,擅长处理复杂的逻辑运算和控制任务。

    • 通常只有一个或几个核心,每个核心可以处理一个线程。

  • GPU:

    • 采用 SIMD (Single Instruction, Multiple Data) 架构,包含大量小型、高效的计算单元。

    • 执行并行指令,擅长处理大量简单重复的计算任务。

    • 通常有数百甚至数千个核心,每个核心可以处理一个线程。

2. 区别:

CPUGPU
架构冯·诺依曼架构SIMD 架构
核心数量少 (1-16)多 (数百-数千)
擅长任务复杂逻辑运算、控制任务简单重复计算任务
应用场景操作系统、应用程序、游戏逻辑图形渲染、科学计算、深度学习
功耗
成本

3. 举例说明:

  • CPU:

    • 运行操作系统,管理计算机资源。

    • 执行应用程序,例如文字处理、网页浏览、视频播放。

    • 处理游戏逻辑,例如角色移动、碰撞检测。

  • GPU:

    • 渲染图形图像,例如游戏画面、3D 模型。

    • 进行科学计算,例如天气预报、基因测序。

    • 训练深度学习模型,例如图像识别、自然语言处理。

什么是CUDA

  • 定义: CUDA NVIDIA 开发的并行计算平台和编程模型,允许开发者使用 GPU 进行通用计算。
  • 功能:
    • 提供 C/C++ 编程接口,方便开发者编写 GPU 加速的代码。
    • 提供 CUDA 运行时库,包含各种数学函数、线性代数库、图像处理库等。
    • 提供 CUDA 驱动程序,管理 GPU 硬件资源。

什么是cuDNN

  • 定义: cuDNN 是 NVIDIA 开发的深度神经网络库,提供了针对深度学习优化的 GPU 加速库函数。
  • 功能:
    • 提供卷积、池化、归一化、激活函数等常用深度学习操作的 GPU 加速实现。
    • 针对深度学习任务进行优化,提供更高的计算效率和更低的延迟。
    • 与 CUDA 紧密集成,方便开发者使用。

⭕⭕⭕可以理解为CUDA使用GPU进行并行计算,cuDNN提高CUDA使用GPU的速度⭕⭕⭕


安装

📢📢📢总结网上大神们的几种安装方法的优劣,如pip、whl、conda。我选择了whl方式成功配置好环境。所以这里介绍一种安装方法whl 方法📢📢📢

🔴Tip:因为安装和配置深度学习环境,需要pytorch、CUDA、Cudnn、torchvision、torchaudio等版本的对应,各组件版本不对应是会有问题的,所以这里我们可以先确定自己想要安装的pytorch版本,而确定安装的pytorch版本又取决与我们电脑显卡支持的版本,所以

1️⃣先确定自己电脑的显卡

在自己电脑win旁边的搜索任务管理器

 可以看到我电脑的显卡是4060

2️⃣确定自己显卡支持的算力 

我们需要到维基上查找:https://en.wikipedia.org/wiki/CUDA(需要梯子才可以)

没有也没有关系,直接看图,第一列显示的是算力

 这里我的电脑对应的算力是8.9

 3️⃣确定好自己电脑的算力,就需要找到所支持的CUDA版本

所以这里我们显卡支持的CUDA是11.8及以下。 


⚠️ ⚠️前提:

  1. 如果之前没有安装过CUDA,可以不用看这一步,直接到Step1开始,或者安装后也可以看,这一步主要说明CUDA的卸载。
  2. 之前安装过CUDA的,或者当前安装的CUDA不满足我们的pytorch,我们想卸载之前装的CUDA怎么卸载呢?
  3. 打开电脑的设置找到应用<安装的应用<搜索CUDA<点击后面三个点<卸载
  4. 再打开环境变量,在系统变量里删除有关CUDA的内容,

在点击path,删除有关CUDA的环境变量。

⏩Step1 确定安装的pytorch版本以及对应的CUDA版本

根据提示,我们首先确定了想要安装的pytorh版本(这里以pytorch2.4.1为例子)

首先进入pytorch官网Start Locally | PyTorch,我们可以看到pytorch2.4.1对应的CUDA版本为11.8. (12.1和12.4也是可以的)

⏩Step2 查看系统支持安装的最高CUDA版本

📍TIP: 这里支持安装最高CUDA版本的意思,不是你的电脑只能支持CUDA12.3(红框你电脑显示的cuda版本)而是当前你的电脑下载的显卡驱动(Driver version)最高支持CUDA12.3,如果后面你安装的CUDA版本大于12.3,只需要重新去nVidia官网下载新的驱动即可。

🔊🔊这里显示的CUDA并不是已经安装在系统中,需要后面自己安装🔊🔊🔊

Win+R打开cmd,输入以下命令

nvidia-smi

🔧🔧如果你的电脑没有显示下面图片的信息,是因为没有安装驱动,进入下面的网站安装即可。

可以看到框内的内容是CUDA version:12.3,表示最高能安装CUDA 12.3的版本,如果你安装的pytorch对应CUDA的版本为12.3及以下版本,就不需要更新显卡驱动,否则就需要安装更高版本的显卡驱动,从而安装更高版本的CUDA
我的CUDA Version是12.3,只要安装小于等于12.3版本的CUDA就不用更新驱动

显卡驱动下载地址为:Download The Official NVIDIA Drivers | NVIDIA

根据自己电脑的显卡,选择对应的信息,最后Find对应的驱动(可能有好几种,选择一个就可以)

⏩Step3 进入官网下载下载CUDA Toolkit

CUDA下载官网地址:CUDA Toolkit Archive | NVIDIA Developer(这里需要登录nvidia账号没有账号先用邮箱注册一个即可)

找到对应的CUDA版本点击进行下载(如我的版本是CUDA11.8)

根据自己电脑的型号,选择对应的选项,最后下载本地的(红框中的)这里的下载速度还是很快的,所以我选择whl的方式,其他的方法可能会因为包和依赖在国外,因为镜像或者网速的问题下载很慢或者失败。等待下载完成

⏩Step4 CUDA的安装

找到下载的位置双击安装程序

这里表示解压到这个文件夹,直接点击OK就行,安装完成,这个解压包会自动删除。

等待解压完成

进入安装:同意并继续

选择自定义安装

点击Driver components 的+号,取消Display Driver 的勾,因为当前的版本大于安装的新版本

接着点击下一步,出现选择按安装位置,是默认的安装目录。安装目录可以自己修改,但是需要自己创建新的目录(自己按照默认的安装位置一个一个新建文件夹即可)。我这里是全放在F盘,比如就为"F:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8"。大家可以根据自己的情况决定是否更改路径,但是一定要记住安装路径后续需要配置环境变量

确定好后安装的目录点击下一步进行安装,直到安装成完成,这里CUDA安装完成。

⏩Step5 cuDNN的下载与安装

cuDNN官网地址:cuDNN Archive | NVIDIA Developer

因为我们安装的CUDA11.8选择一个for cuda11.x点击进入。

选择windows,点击下载即可。

将下载好的cuDNN压缩包解压,并将解压后所有的文件复制粘贴至刚才CUDA的安装目录,注意是CUDA的安装目录,如果有提示文件重复则选择全部覆盖即可。

⏩Step6 配置CUDA环境变量

电脑设置里搜索高级系统设置

点击环境变量

系统变量选择Path,双击进入

添加环境变量:可以看到红框标注的是安装CUDA后自动添加的,如果没有可以自己添加(如果有前两项,直接从第三个开始一个一个的添加)

⛔⛔⛔注意修改为自己安装的盘⛔⛔⛔

F:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin

F:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\libnvvp

F:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include

F:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib

F:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\CUPTI\lib64

添加成功后点击键盘的win+R,在cmd命令行输入nvcc -V查看一下安装的CUDA的版本:

接下来验证CUDA是否安装成功,进入CUDA安装路径下的demo_suite目录,在地址栏输入cmd并回车即可进入该目录下

输入以下命令

.\bandwidthTest.exe

.\deviceQuery.exe

输入两个指令后,结果均为PASS,说明CUDA和cuDNN已经成功安装和配置。


😍😍😍下面正式进入pytorch的安装过程😍😍😍

⏩Step7 torch的下载

确保已经安装好CUDA和CUDNN。进入https://download.pytorch.org/whl/cu+你的cuda版本号

因为我们安装的cuda版本为11.8,所以直接修改网站为https://download.pytorch.org/whl/cu118

点击torch进入,我们看到如下的界面,找到torch并点击。

按住键盘CTRL+F键出现搜索框,输入2.4.1(因为我们一开始确定安装的torch版本是2.4.1),我们上面安装的CUDA11.8,cp310表示的是python版本,这里建议选择3.9及以上(最近新版本的torch支持的3.12>=python>=3.9),然后选择win系统。因为我们搜索了所以可以看到最右边的黄色部分就是我们检索到的,可以快速定位,注意不要下载到CPU版本的。

以上我们就把torch给下载好了,接下来我们需要下载torchvision和torchaudio,因为他们都有很强的版本依赖关系,所以我们必须找到他们对应的版本。

🔆🔆🔆这里先总结一下,在前面我们首先确定了安装pytorch2.4.1,在其官网上找到对应的CUDA版本为11.8,并下载CUDA11.8,接着我们在nvidia官网找到对应的cuDNN。所以这里我们需要找到torchvision和torchaudio的版本。

⏩Step8 查看pytorch与torchvision对应的版本并下载

首先查看pytorch与torchvision对应的版本,点击这个网址:pytorch/vision: Datasets, Transforms and Models specific to Computer Vision (github.com)

我们可以看到torch,torchvision以及python的版本对应关系,我们装的torch版本为2.4.1(看小数点后一位即可:2.4),对应的torchvision为0.19,所以我们去下载torchvision0.19

我们回到Step7中下载torch的网站:https://download.pytorch.org/whl/cu118

找到torchvision,点击进入

与搜索torch一样,CTRL+F搜索,滑动最右侧的黄色快,快速定位,我们发现torchvision的版本有0.19.0和0.19.1,(我一开始下载0.19.0然后安装的时候提示版本不匹配😭 😭 😭)返回下载0.19.1,这里推荐下载最新的,然后确定cu118(cuda11.8的意思),cp310,win系统,接着点击下载就好。

⏩Step9 查看pytorch与torchaudion对应的版本并下载

首先查看pytorch与torchaudion对应的版本,点击这个网站Installing pre-built binaries — Torchaudio 2.5.0.dev20240927 documentation (pytorch.org)

我们发现没有我们需要的torch2.4.1对应的版本(网站的更新不及时),但是没关系,我们可以看到最近的pytorch与torchaudio两个版本前两位号码都是一样的,以前的版本是后两位一样的,我们根据这个规律,确定我们安装的torchaudio版本应为2.4.X

同样我们回到下载torchvision的网站:https://download.pytorch.org/whl/cu118

找到torchaudio,点击进入

Ctrl+F搜索,2.4我们可以看到torchaudio有2.4.1,所以这个版本号应该是和torch2.4.1是对应的(我下载了2.4.1后面可以成功匹配),确定cuda118,cp310,win系统,点击进行下载(注意不要下载到CPU版本)

💯💯💯总结:从Step1——Step6我们安装了CUDA、cuDNN; 从Step7——Step9我们分别安装了torch、torchvision、torchaudio.到这里安装pytorch的准备工作已经完成💯💯💯

⏩Step10 pytorch环境安装

我们安装在anaconda环境中,先打开anaconda prompt,创建一个环境(如果有想装的环境就不需要创建了)

conda create -n 你的环境名

我这里是deeplabcut3.0,如

conda create -n deeplabcut3.0

接着激活你的环境,输入

conda activate 你的环境名

接着我们需要进入上面下载torch、torchvision、torchaudio的位置

🟢🟢我这里下载的位置在G盘,所以输入G:(注意这里有冒号)可以看到从C盘切换到G盘了

🔔🔔如果你下载的位置不是直接在一个盘里,而是盘的文件夹,(这里以"G:\EndNote.20.5\Crack\EndNote "这个文件位置为例子)我们可以先输入G:切换到G盘,接着输入cd G:\EndNote.20.5\Crack\EndNote  即可进入你的文件夹。

先安装torch,输入pip install torch然后按Tab键会自动补全torch的文件名:

看到后面显示Successfully,installeed torch-2.4.1+cu118-cp310-cp310-win_amd64.whl 说明torch已经成功安装。

接着再安装torchvision,输入pip install torchvision然后按Tab键自动补全:

最后安装torchaudio,输入pip install torchaudio然后按Tab键自动补全:

以上所有的安装项目已经装好,最后验证一下Pytorch是否安装成功,在命令行先输入python进入python环境,接着分别输入以下三句命令

import torch

print(torch.__version__)

print(torch.cuda.is_available())

最后我们看到一个true ✔️ ✔️ ✔️,说明我们已经装好了. 

安装成功,芜湖起飞!!!🥰 🥰 🥰

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;