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

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.xdnf.cn/news/17098.html

相关文章:

  • Go语言“fmt”包详解
  • 【Linux内核系列】:信号(上)
  • Docker的安装,服务器与客户端之间的通信
  • LeetCode每日一题,8-6
  • springboot项目justAuth扩展第二个小程序
  • Unity轻量观察相机
  • 功能安全和网络安全的综合保障流程
  • 云端软件工程智能代理:任务委托与自动化实践全解
  • CDP集群中通过Hive外部表迁移HBase数据的操作记录
  • 昇思+昇腾开发板+DeepSeek模型推理和性能优化
  • 自己本地搭建的服务器怎么接公网?公网IP直连服务器方法,和只有内网IP直接映射到互联网
  • 线性代数中矩阵的基本运算运算
  • 哲学中的主体性:历史演进、理论范式与当代重构
  • FLAN-T5:大规模指令微调的统一语言模型框架
  • python-自定义抠图
  • OpenSpeedy绿色免费版下载,提升下载速度,网盘下载速度等游戏变速工具
  • Datawhale AI夏令营 第三期 task2 稍微改进
  • MyBatis实现SQL
  • Python日志记录库——logaid
  • Centos-Stream 10 安装教程(2025版图文教程)
  • ASP3605I同步降压调节器的高频化设计与多相扩展技术优化方案
  • Python 函数详解
  • 重生之我在暑假学习微服务第十天《网关篇》
  • 微软Dragon Ambient eXperience (DAX) 深度解析
  • 《UE教程》第一章第六回——迁移独立项目(资源)
  • 【学习嵌入式day-17-数据结构-单向链表/双向链表】
  • 【计算机网络】6应用层
  • 深度学习·基础知识
  • selenium自动化收集资料
  • 从汇编角度揭秘C++构造函数(1)