当前位置: 首页 > news >正文

PyTorch入门引导

欢迎来到啾啾的博客🐱。
记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。
有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。

目录

  • 引言
  • 1 入门介绍
    • 1.1 学习资料
    • 1.2 一些基本概念关联
    • 1.3 前置准备
  • 2 术语表
    • 2.1 🧠 PyTorch 核心术语表
    • 2.2 📦 常用模块速查

引言

为什么要学习PyTorch?

微调、部署、研究都需要。

  • 现代AI研究的通用语言基础就是PyTorch。
  • 几乎所有的微调工具和库,包括Hugging Face的transformers, peft, trl,其底层都是基于PyTorch构建的。
  • 当你需要排查部署中的性能瓶颈、显存溢出(OOM)等问题时,理解模型在PyTorch中是如何加载和计算的,将是解决问题的关键。

1 入门介绍

尝试让读者通过本篇快速认识PyTorch,开始学习PyTorch。

1.1 学习资料

PyTorch官网
《深入浅出PyTorch》教程的资源汇总
《动手学深度学习》
Let’s build GPT: from scratch, in code, spelled out.

1.2 一些基本概念关联

![[深度学习入门.png]]

1.3 前置准备

需要对Python有了解。

  • 环境准备
    经过验证的无冲突版本。
pip install transformers==4.45.2 tokenizers==0.20.3 chromadb==0.5.23

确认是否安装PyTorch

python -c "import torch, sys; print('PyTorch', torch.__version__); print('Python', sys.version)"

2 术语表

让我们一起过一遍PyTorch术语表,以建立基本的认知,方便回顾、查找。

2.1 🧠 PyTorch 核心术语表

术语英文解释
张量TensorPyTorch 的基本数据结构,类似于 NumPy 的ndarray,但支持 GPU 加速和自动求导。所有数据(图像、文本、标签等)最终都转换为张量进行处理。
自动求导Autograd自动计算梯度的功能。当你对张量进行运算并调用.backward()时,PyTorch 会自动构建计算图并计算梯度,用于反向传播。
计算图Computational Graph动态构建的图结构,记录所有张量操作,用于自动求导。PyTorch 是“动态图”框架(每次前向都重新构建)。
模型Model指神经网络结构,通常继承自nn.Module,包含网络层和前向传播逻辑。
层 / 模块Layer / Module神经网络的基本组成单元,如全连接层、卷积层等。在 PyTorch 中,每个层都是一个nn.Module的子类。
前向传播Forward Pass输入数据通过模型逐层计算,得到输出结果的过程。由forward()方法定义。
损失函数Loss Function衡量模型输出与真实标签之间差距的函数,如交叉熵、均方误差等。训练目标是最小化损失。
优化器Optimizer根据梯度更新模型参数的算法,如 SGD、Adam。负责执行parameter -= learning_rate * gradient
反向传播Backward Pass利用损失函数对模型参数求导(梯度),为优化器提供更新方向。调用loss.backward()触发。
梯度清零Zero Grad在每次训练迭代前,需要调用optimizer.zero_grad()清除上一轮的梯度,防止累积。
数据集Dataset表示数据集合的抽象类,需实现__len____getitem__方法。用于封装样本和标签。
数据加载器DataLoader包装Dataset,提供批量加载、打乱顺序、多进程加载等功能。训练时从它获取 batch 数据。
批大小Batch Size一次前向/反向传播处理的样本数量。影响内存使用和训练稳定性。
训练循环Training Loop控制整个训练过程的循环结构:遍历数据、前向、计算损失、反向传播、更新参数。
验证/测试循环Validation/Test Loop在训练过程中评估模型性能的循环,不进行反向传播(torch.no_grad())。
设备Device指定模型和张量运行在 CPU 还是 GPU 上,如'cpu''cuda'
GPU 加速CUDA使用 NVIDIA GPU 加速计算。PyTorch 支持通过.to('cuda')将张量和模型移到 GPU。
保存模型Save Model将训练好的模型权重保存到文件(.pth.pt),常用torch.save()
加载模型Load Model从文件恢复模型权重,需先创建相同结构的模型,再调用load_state_dict()
状态字典State Dict包含模型所有可学习参数(权重、偏置)的字典,通过model.state_dict()获取。
迁移学习Transfer Learning使用预训练模型(如 ResNet)作为起点,在新任务上微调。节省训练时间和资源。

2.2 📦 常用模块速查

模块用途
torch核心库,包含张量、数学运算、自动求导
torch.nn构建神经网络的类和函数(如层、损失函数)
torch.optim优化器(SGD、Adam 等)
torch.utils.data数据处理工具(Dataset、DataLoader)
torchvision计算机视觉专用库,含数据集、模型、图像变换
torchvision.transforms图像预处理(归一化、裁剪、转张量等)
http://www.dtcms.com/a/317151.html

相关文章:

  • 识别 Base64 编码的 JSON、凭证和私钥
  • 接口自动化测试用例详解
  • 使用python与streamlit构建的空间微生物分析
  • RabbitMQ 全面指南:从基础概念到高级特性实现
  • 控制服务和守护进程-systemctl
  • python学智能算法(三十四)|SVM-KKT条件回顾
  • 系统的缓存(buff/cache)是如何影响系统性能的?
  • 【学习笔记之redis】删除缓存
  • 【Redis】hash哈希,List列表
  • app-3
  • Python day36
  • Java Stream API 详解(Java 8+)
  • IP与MAC地址的区别解析
  • 数据仓库命名规范
  • AS32S601 芯片 ADC 模块交流耦合测试:技术要点与实践
  • 使用 gptqmodel 量化 Qwen3-Coder-30B-A3B-Instruct
  • 大型音频语言模型论文总结
  • 【前端开发】三. JS运算符
  • MCU程序段的分类
  • 异世界历险之数据结构世界(非递归快排,归并排序(递归,非递归))
  • 搭建私有 Linux 镜像仓库
  • 算法训练营DAY55 第十一章:图论part05
  • 图论(邻接表)DFS
  • 藏文识别技术:为藏文化的保护、传播、研究与发展注入核心动力
  • 【C++基础】宏的高级替代方案:面试高频考点 + 真题解析全攻略
  • 推荐系统召回粗排的优化思路
  • 数据大集网:以数据为纽带,重构企业贷获客生态的助贷平台实践
  • 【WAIC 2025】AI安全的攻防前线:合合信息AI鉴伪检测技术
  • 基于Vue+Node.js(Express)实现(Web)物联网的蔬菜大棚温湿度监控系统
  • Google地图的“网络定位”功能