PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】笔记

article/2025/10/18 22:42:47

PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】笔记

  • 教程与代码地址
  • P1 PyTorch环境的配置及安装(Configuration and Installation of PyTorch)【PyTorch教程】
  • P2 Python编辑器的选择、安装及配置(PyCharm、Jupyter安装)【PyTorch教程】
  • P3 【FAQ】为什么torch.cuda.is_available返回False
  • P4 Python学习中的两大法宝函数(当然也可以用在PyTorch)
  • P5 PyCharm及Jupyter使用及对比
  • P6 PyTorch加载数据初认识
  • P7 Dataset类代码实战
  • P8 TensorBoard的使用(一)
  • P9 TensorBoard的使用(二)
  • P10 Transforms的使用(一)
  • P11 Transforms的使用(二)
  • P12 常见的Transforms(一)
  • P13 常见的Transforms(二)
  • P14 torchvision中的数据集使用
  • P15 DataLoader的使用
  • P16 神经网络的基本骨架-nn.Module的使用
  • P17 土堆说卷积操作(可选看)
  • P18 神经网络-卷积层
  • P19 神经网络-最大池化的使用
  • P20 神经网络-非线性激活
  • P21 神经网络-线性层及其他层介绍
  • P22 神经网络-搭建小实战和Sequential的使用
  • P23 损失函数与反向传播
  • P24 优化器(一)
  • P25 现有网络模型的使用及修改
  • P26 网络模型的保存与读取
  • P27 完整的模型训练套路(一)
  • P28 完整的模型训练套路(二)
  • P29 完整的模型训练套路(三)
    • torch.nn.module.train()
    • torch.nn.module.eval()
  • P30 利用GPU训练(一)
  • P31 利用GPU训练(二)
  • P32 完整的模型验证套路
  • P33 【完结】看看开源项目

教程与代码地址

笔记中,图片和代码基本源自up主的视频和代码

视频链接: PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】
视频代码: https://github.com/xiaotudui/PyTorch-Tutorial
如果想要爬虫视频网站一样的csdn目录,可以去这里下载代码:https://github.com/JeffreyLeal/MyUtils/tree/%E7%88%AC%E8%99%AB%E5%B7%A5%E5%85%B71

P1 PyTorch环境的配置及安装(Configuration and Installation of PyTorch)【PyTorch教程】

P2 Python编辑器的选择、安装及配置(PyCharm、Jupyter安装)【PyTorch教程】

P3 【FAQ】为什么torch.cuda.is_available返回False

P4 Python学习中的两大法宝函数(当然也可以用在PyTorch)

  1. dir()
  2. help()
    在这里插入图片描述

P5 PyCharm及Jupyter使用及对比

在这里插入图片描述

P6 PyTorch加载数据初认识

在jupyter中:

from torch.utils.data import Dataset
# 查询Dataset的doc描述
# 方式一:
help(Dataset)
# 方式二:
Dataset??

在这里插入图片描述三种数据集标签标注形式:
第一种:文件夹名字就是标签名;
第二钟:有另外一个文件记录下文件与标签的映射关系;
第三种:文件本身带有标签名。

P7 Dataset类代码实战

详细代码看read_data.py

from torch.utils.data import Dataset

os.path.join(self.root_dir, self.label_dir) 对地址字符串进行拼接,参数为可变形参

os.listdir(self.image_path) 把路径下的文件装入到list容器中

P8 TensorBoard的使用(一)

TensorBoard是一个可视化工具,它可以用来展示网络图、张量的指标变化、张量的分布情况等。特别是在训练网络的时候,我们可以设置不同的参数(比如:权重W、偏置B、卷积层数、全连接层数等),使用TensorBoader可以很直观的帮我们进行参数的选择。

详细代码看P8_Tensorboard.py

from torch.utils.tensorboard import SummaryWriter

容易遇到以下问题,以及tensorboard的安装问题
在这里插入图片描述

pytorch 1.6.0 出现ModuleNotFoundError: No module named ‘tensorboard‘错误.

urllib.error.URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED]

P9 TensorBoard的使用(二)

详细代码看P8_Tensorboard.py

  1. 创建SummaryWriter类,传入logs文件输出地址
  2. 图片文件地址
  3. Image类打开图片文件
  4. 将Image类转换numpy格式
  5. SummaryWriter类加载numpy格式图片
  6. 画图
  7. 关闭SummaryWriter流

P10 Transforms的使用(一)

详细代码看P9_transforms.py

transforms一个torchvision下的一个工具箱,用于格式转化,视觉处理工具,不用于文本。
在这里插入图片描述

按住ctrl,点击transforms
在这里插入图片描述
再按住ctrl,点击transforms,就能看到transforms的源代码,左下角structure可以看到文件结构。
在这里插入图片描述

它里面有多个工具类:
Compose类:将几个变换组合在一起。
CoTensor类:顾名思义,讲其他格式文件转换成tensor类的格式。
ToPILImage类:转换成Image类。
Nomalize类:用于正则化。
Resize类:裁剪。
RandomCrop:随机裁剪。

工具类都有__call__()方法,具体作用看python中的 call().

P11 Transforms的使用(二)

P12 常见的Transforms(一)

格式转换流程都大同小异,以Image转换成tensor为例:

  1. 传入图片路径,创建Image类;
  2. 创建ToTensor类;
  3. 使用toTensor(image),传入Image类,调用ToTensor类的__call__()方法,返回Tensor类。

P13 常见的Transforms(二)

在这里插入图片描述

P14 torchvision中的数据集使用

进入pytorch官网
在这里插入图片描述
在这里插入图片描述讲述dataset和transform的联合使用。

代码见P10_dataset_transform.py。

路径中:’.‘表示当前目录,’ …'表示上层目录,Linux里的shell语法

P15 DataLoader的使用

Dataset如果是一叠扑克牌的话,DataLoader就是一只手,参数就是告诉这只手怎么抓取扑克牌。

DataLoader常用参数:
dataset (Dataset) – 使用哪个数据集

batch_size (int, optional) – 一次抓取多少个数据,多少张牌

shuffle (bool, optional) – 是否重新洗牌

num_workers (int, optional) – 多线程,windows下要设成0,不然会出错,出现

BrokenPipeError: [Errno 32] Broken pipe

drop_last (bool, optional) – 当数据集大小不能被批大小整除时,设置为True则以删除最后一个不完整的批。False,则不删除,最后一批将变小。(默认值:False)

datasetloader加载批数据过程:
datasetloader加载批数据过程代码见dataloader.py

P16 神经网络的基本骨架-nn.Module的使用

代码见nn_module.py

input -> nn -> output,其中使用nn模型的时候,会自动调用__call__()方法,call()方法里面又调用了forword()方法,所以在继承一个nn模型的时候,要重写它的__init__()方法和__forword()__方法。

P17 土堆说卷积操作(可选看)

torch.nn模块会用就可以,相对于方向盘。
torch.functional模块不需要掌握,相对于齿轮。

卷积原理的保姆级教程。
代码见nn_conv.py,使用torch.nn.functional模块。

P18 神经网络-卷积层

在这里插入图片描述
conv2d常用参数:

in_channels (int) – 输入通道数,RGB图像就是三通道。

out_channels (int) – 输出通道数,也就是卷积核的个数,输入通道不为1的情况,

kernel_size (int or tuple) – 卷积核大小,比如3就代表3×3的卷积核。

stride (int or tuple, optional) – 步长,卷积完成一次计算后,卷积核移动多少步。

padding (int, tuple or str, optional) – 填充,比如1就代表图像外围加一圈数据,默认都是0。

padding_mode (string, optional) – 填充模式,“零”、“反射”、“复制”或“圆形”。 默认值:‘零’ 。

dilation (int or tuple, optional) – 内核元素之间的间距 . Default: 1,具体这里介绍Dilated convolution animations

groups (int, optional) – 从输入通道到输出通道的阻塞连接数。 Default: 1

bias (bool, optional) –偏置,如果为 True,则向输出添加可学习的偏差。 默认值:真

P19 神经网络-最大池化的使用

class
torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)

ceil_mode – 对于float型,向上取整ceil还是向下取整floor。

代码见nn_maxpool.py

P20 神经网络-非线性激活

关于RELU,原始数据是否原地操作:
在这里插入图片描述

P21 神经网络-线性层及其他层介绍

代码见nn_linear.py

视频18:58左右运动代码出错,是因为最后一个batch的大小<batch_size的大小,应该要在datasetloader()参数中设置drop_last=True。

P22 神经网络-搭建小实战和Sequential的使用

在这里插入图片描述以下是这个模型的代码,Sequential的作用就是简化代码块1,把代码块1装进去Sequential容器里,就是代码块2的代码了,然后代码块1就可以删除了。
在这里插入图片描述
这里用tensorboard,可以得到非常牛逼的模型结构图

P23 损失函数与反向传播

代码见nn_loss.py和nn_loss_network.py

由于loss()函数接收的数要是float类型,所以传入tensor数据的时候,要把tensor()参数中的dtype=torch.float32

P24 优化器(一)

代码见nn_optim.py

# 优化器通常设置模型的参数,学习率等
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)
optimizer = optim.Adam([var1, var2], lr=0.0001)for input, target in dataset:#把上一次计算的梯度清零optimizer.zero_grad()output = model(input)loss = loss_fn(output, target)# 损失反向传播,计算梯度loss.backward()# 使用梯度进行学习,即参数的优化optimizer.step()

P25 现有网络模型的使用及修改

出名的模型才会有现有的
在这里插入图片描述代码见model_pretrained.py

P26 网络模型的保存与读取

代码见model_save.py和model_load.py

P27 完整的模型训练套路(一)

在这里插入图片描述代码见model.py和train.py

format函数的用法:

print("-------第 {} 轮训练开始-------".format(3))输出:-------3 轮训练开始-------

详细见:Python format 格式化函数

P28 完整的模型训练套路(二)

代码见train.py

查看验证集

torch.no_grad函数:禁用梯度计算的上下文管理器。
当您确定不会调用 Tensor.backward() 时,禁用梯度计算对于推理很有用。 它将减少原本需要 requires_grad=True 的计算的内存消耗。

torch.no_grad函数在用验证集的测试性能的时候使用,可以使得测试的过程中,不会计算用于反向传播的梯度,减小消耗。

P29 完整的模型训练套路(三)

在pytorch官网中ctrl+F搜索

torch.nn.module.train()

将模块设置为训练模式。

这仅对某些模块有任何影响。 如果它们受到影响,请参阅特定模块的文档以了解其在培训/评估模式下的行为的详细信息,例如 Dropout、BatchNorm 等

torch.nn.module.eval()

将模块设置为评估模式。

这仅对某些模块有任何影响。 如果它们受到影响,请参阅特定模块的文档以了解其在培训/评估模式下的行为的详细信息,例如 Dropout、BatchNorm 等

这相当于 self.train(False)。

P30 利用GPU训练(一)

代码见train_gpu_1.py

使用以下句式进行gpu加速:

if torch.cuda.is_available():tudui = tudui.cuda()

使用time模块来计时

使用谷歌、天池的GPU加速

P31 利用GPU训练(二)

代码见train_gpu_2.py

使用以下句式进行gpu加速:

device = torch.device("cuda")
# Tudui是一个神经网络模型
tudui = Tudui()
tudui = tudui.to(device)

P32 完整的模型验证套路

在这里插入图片描述
在这里插入图片描述代码见test.py

P33 【完结】看看开源项目

06:00开始看,如何读懂github上面的代码


http://chatgpt.dhexx.cn/article/EtAxU0MV.shtml

相关文章

【超详细】Pytorch 入门教程(一)

Pytorch基本语法 1 认识Pytorch2 Pytorch的基本元素操作3 Pytorch的基本运算操作4 关于Torch Tensor和Numpy array之间的相互转换5 总结1 认识Pytorch 什么是Pytorch? Pytorch是一个基于Numpy的科学计算包, 向它的使用者提供了两大功能. 作为Numpy的替代者, 向用户提供使用GPU…

PyTorch安装教程(带图文)

文章目录 1.准备工作2.安装pytorch3.检验4.总结 前言 上一篇文章讲解了如何安装Anaconda,现在来安装pytorch,安装好工具就可以好好学习了。 1.准备工作 由于我安装anaconda时选择了最新版的&#xff0c;它默认安装了最新版python 3.8.5版本&#xff0c;我看网上大多数博主推荐…

Pytorch安装教程(最全最详细版)

目录 概述安装一、CUDA 安装&#xff08;一&#xff09;CUDA 概述&#xff08;二&#xff09;安装 二、Anaconda 安装三、Pytorch安装&#xff08;一&#xff09;GPU版本安装方法一方法二 &#xff08;二&#xff09;CPU版本安装 概述 PyTorch是一个开源的深度学习框架&#x…

pytorch安装教程新手入门

PyTorch环境搭建 引言 PyTorch是一个开源的Python机器学习库&#xff0c;其前身是2002年诞生于纽约大学的Torch。它是美国Facebook公司使用python语言开发的一个深度学习的框架&#xff0c;2017年1月&#xff0c;Facebook人工智能研究院&#xff08;FAIR&#xff09;在GitHub…

pytorch安装教程

大家好&#xff0c;今天我根据我在安装Pytorch过程中遇到的问题&#xff0c;来分享一下我安装Pythorch的经验。 安装pytorch大概可以分成下列四个步骤 先来了解一下什么是 Anacond。 Anacond就是可以便捷获取包且对包能够进行管理&#xff0c;同时对环境可以统一管理的发行版本…

pytorch基础入门教程/一小时学会pytorch

Pytorch一小时入门教程 前言 机器学习的门槛并没有想象中那么高&#xff0c;我会陆续把我在学习过程中看过的一些文章和写过的代码以博客的形式分享给大家&#xff0c;和大家一起交流&#xff0c;这个是本系列的第一篇&#xff0c;pytoch入门教程&#xff0c;翻译自pytoch官方…

2023最新pytorch安装教程,简单易懂,面向初学者(Anaconda+GPU)

一、前言 目前是2023.1.27,鉴于本人安装过程中踩得坑&#xff0c;安装之前我先给即将安装pytorch的各位提个醒&#xff0c;有以下几点需要注意 1.判断自己电脑是否有GPU 注意这点很重要&#xff0c;本教程面向有NVIDA显卡的电脑&#xff0c;如果你的电脑没有GPU或者使用AMD显…

pytorch超级详细的安装教程

pytorch超级详细的安装教程 第一次安装的时候安装了差不多有一整天&#xff0c;还安装失败了。这次安装的速度很快。 首先是Anaconda的下载&#xff0c;我用的是上学期学python的时候老师之前给的安装包&#xff0c;很快就安装好了&#xff0c;或者去官网去下载Anaconda也挺快…

超详细的的PyTorch安装教程,成功率高,适合初学者,亲测可用。

啰嗦几句&#xff1a;网上的教程很多&#xff0c;安装的方法多种多样&#xff0c;操作复杂&#xff0c;成功率还不高。小编在淘宝专门帮助不会安装的小伙伴远程配置环境&#xff0c;这方法都是测试过了&#xff0c;适用大部分人的&#xff0c;完全按照文章来操作&#xff0c;基…

pytorch官方教程(详细版)

由于在写DQN代码时发现对细节不够了解&#xff0c;因此又详细学习了一下pytorch相关内容&#xff0c;以下内容来自官网教程&#xff0c;此前的pytorch笔记&#xff1a; pytorch训练分类器 pytorch基础入门 pytorch实现CartPole-v1任务的DQN代码 &#xff08;一&#xff09;Da…

Pytorch速成教程(一)整体流程

目录 0 简介 1 张量的概念和生成 2 自动微分 2.1 Tensor类 2.2 梯度 3 神经网络 3.1 定义网络 3.2 查看模型参数 3.3 测试网络 3.4 损失函数更新权重 4 训练分类器 4.1 数据处理生成Dataload 4.2 定义卷积网络 4.3 定义损失函数 4.4 遍历DataLoader进行训练 4.5 …

PyTorch详细教程

一、参考资料 PyTorch中文文档 PyTorch官方文档 PyTorch官方源码&#xff1a;GitHub - pytorch/pytorch: Tensors and Dynamic neural networks in Python with strong GPU acceleration PyTorch 中文教程 & 文档 二、分布式训练 pytorch set_epoch()方法 在分布式模…

PyTorch深度学习快速入门教程(绝对通俗易懂!!!)

文章目录 一、PyTorch环境的配置及安装二、Pycharm、jupyter的安装1. Pycharm2.jupyter 三、Python学习中的两大法宝函数&#xff08;help、dir&#xff09;四、加载数据&#xff08;Dataset&#xff09;五、TensorBorad的使用六、Transformer1.compose2.toTensor3.Normalize4.…

Python安装Pytorch教程(图文详解)

最近人工智能等多门课需要复现论文&#xff0c;近两年的论文很多都是基于Pytorch环境做的实验&#xff0c;所以&#xff0c;这里总结一下Pytorch的安装教程&#xff0c;做好最快、最简单、最好地完成安装。 本机环境Win101050TiPython3.7 1、查看本机的CUDA版本 cmd命令行输…

Pytorch入门教程

&#x1f468;‍&#x1f4bb;作者简介&#xff1a;大数据专业硕士在读&#xff0c;CSDN人工智能领域博客专家&#xff0c;阿里云专家博主&#xff0c;专注大数据与人工智能知识分享&#xff0c;公众号&#xff1a;GoAI的学习小屋&#xff0c;免费分享书籍、简历、导图等资料&a…

【Pytorch】2022 Pytorch基础入门教程(完整详细版)

一、Pytorch 1.1 简介 Pytorch是torch的python版本&#xff0c;是由Facebook开源的神经网络框架&#xff0c;专门针对 GPU 加速的深度神经网络&#xff08;DNN&#xff09;编程。Torch 是一个经典的对多维矩阵数据进行操作的张量&#xff08;tensor &#xff09;库&#xff0…

MacOS Ventura 13.4 (22F66) 带 OC 引导双分区黑苹果镜像

苹果今日向 Mac 电脑用户推送了 macOS 13.4 更新&#xff08;内部版本号&#xff1a;22F66&#xff09;&#xff0c;本次更新距离上次发布隔了 41 天&#xff0c;主要解决了与Apple Watch自动解锁、蓝牙键盘、屏幕使用时间和VoiceOver相关的问题&#xff0c;推荐大家安装升级。…

装完黑苹果怎么装windows_苹果都说双系统好 黑苹果装windows教程

【IT168 应用】苹果官网上有段广告词——“妈妈总是说&#xff1a;“要和别人好好相处啊。”你的电脑也要这样。借助 OS X&#xff0c;你可以使用 Microsoft Office、与大多数打印机和摄像机相连、加入 PC 网络、甚至还可以运行 Windows。”。 可见苹果也将支持安装windows系统…

打造黑苹果(二)制作黑mac系统安装U盘

打造黑苹果&#xff08;二&#xff09;制作黑mac系统安装U盘 前言 在上一篇打造黑苹果&#xff08;一&#xff09;组装硬件的选择与组装 中&#xff0c;我们已经给大家在硬件上有了一个建议。如果你已经购买了硬件了&#xff0c;或者你原来的硬件就已经满足了黑MAC的需求&…

MacOS Ventura 13.4.1 (22F82) 带 OC 引导双分区黑苹果镜像

苹果今日向 Mac 电脑用户推送了 macOS 13.4.1 更新&#xff08;内部版本号&#xff1a;22F82&#xff09;&#xff0c;根据Apple的发布说明&#xff0c;该更新提供了重要的安全修复&#xff0c;并建议所有用户进行更新。Apple还为无法运行Ventura的用户发布了macOS 11.7.8和mac…