当前位置: 首页 > 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.lryc.cn/news/612528.html

相关文章:

  • C++、STL面试题总结(一)
  • 【C++】二叉树进阶
  • JavaWeb(04)
  • Perforce P4 Plan - DevOps实时规划工具
  • Qt-桌面宠物
  • 4、docker数据卷管理命令 | docker volume
  • docker run 入门到进阶:容器启动背后的门道
  • PCB工艺-四层板制作流程(简单了解下)
  • C++与C语言实现Stack的对比分析
  • 如何快速翻译PPT中的文字(或简繁体转换)
  • PI 思维升级 解密电容器的选择与布局策略,带您追求极致平坦的电源阻抗
  • 【VTK】绘制圆锥进行简单的几何渲染
  • 图论(邻接表)DFS
  • AI领域的三箭齐发之夜 - genie3,gpt-oss, Opus 4.1
  • go与grpc
  • 【软考系统架构设计师备考笔记5】 - 专业英语
  • Xcode 26 如何在创建的 App 包中添加特定的目录
  • Linux——静态网络,创建用户
  • 基于PHP的快递管理系统的设计与实现
  • android10~16变更一览和开发者兼容应对
  • css优化、提升性能方法都有哪些?
  • React:生命周期
  • antd组件select下拉数据分页加载
  • LeetCode 分类刷题:611. 有效三角形的个数
  • 【前端】Vite中import.meta功能详解
  • 深度修改elementUI样式思路
  • 《Day2-PyTorch Tensor 从入门到实践:核心操作与避坑指南》
  • 磁悬浮转子变转速工况下的振动抑制全解析
  • Conditional Modeling Based Automatic Video Summarization
  • 云平台托管集群:EKS、GKE、AKS 深度解析与选型指南-第二章