pytorch/pytorch
Star93.0K Fork25.5K 最后更新2026-08-02

PyTorch 是 Meta AI 主导、Linux 基金会管理的开源深度学习框架,已经成为学术界与产业界训练深度模型的默认工具。本文作为 PyTorch 入门教程,把快速上手必须掌握的 8 大函数浓缩成一张速查表,搭配本站「跟我一起学深度学习」中的示例代码,可让读者快速入门 PyTorch 的使用。

仓库简介#

PyTorch 是当前 最主流的深度学习框架 之一,由 Meta AI 主导、Linux 基金会管理,强调 Python 优先 · 动态计算图 · GPU 加速 Tensor,是学术界研究大模型与产业界训练深度模型的默认工具。这份 PyTorch 入门手册 + 实战教程 把「快速上手 PyTorch 必须掌握的函数与类」浓缩成一张 8 大类速查表,每一类直接给出必会函数清单与本站对应章节,从 PyTorch 快速入门 一路走到 PyTorch 实战教程 落地,覆盖 90% 高频代码片段。

快速上手 8 大函数类#

下面把 PyTorch 快速入门 中绕不开的 8 大函数类压缩成一张速查表。第 1 列是函数类别,第 2 列是高频 API,第 3 列直接跳转到本站对应章节,做到 PyTorch 入门教程一站式导航与 PyTorch 基础教程速查。

函数类 · 用途 必会函数清单 本站对应章节 · pytorch 入门教程
1. torch.Tensor 张量操作(PyTorch 张量基础)
构造、形状、数学运算、设备迁移
torch.tensor torch.zeros torch.arange
tensor.item tensor.reshape tensor.view
tensor.squeeze tensor.unsqueeze @
tensor.matmul tensor.sum tensor.mean
tensor.to('cuda') torch.ones_like
这部分内容主要是遵循遇到再学
第 1.3 节 深度学习框架发展史:PyTorch、TensorFlow 与 Caffe、Keras 演进
第 3.2 节 线性回归简洁实现:PyTorch 回归模型快速入门
2. torch.autograd 自动微分(PyTorch 自动微分教程)
梯度计算、上下文管理
l.backward() tensor.requires_grad_(True)
tensor.detach() with torch.no_grad():
with torch.inference_mode():
第 3.6 节 Softmax 回归简洁实现
3. torch.nn 神经网络模块(PyTorch 神经网络教程)
网络层、损失函数、容器
nn.Module nn.Linear nn.Conv2d nn.LSTM
nn.ReLU nn.Sigmoid nn.Tanh nn.Dropout
nn.CrossEntropyLoss nn.MSELoss
nn.Sequential nn.Transformer
第 4.4 节 LeNet5 网络:经典卷积神经网络结构入门
第 4.9 节 ResNet 原理:残差结构、退化问题与网络实现
图解 Transformer 第 1 讲 Multi-Head Attention 图解教程
4. torch.optim 与学习率调度
(PyTorch 优化器入门)
梯度更新、warmup、cosine
optim.SGD() optim.Adam optim.AdamW
optim.lr_scheduler.CosineAnnealingLR
optimizer.zero_grad() optimizer.step()
第 5.2 节 TensorBoard 使用教程:训练日志可视化与监控
图解 Transformer 第 7 讲 Transformer 动态学习率教程:详解 warmup 公式与 PyTorch LambdaLR 自定义实现
5. torch.utils.data 数据加载(PyTorch DataLoader教程)
Dataset、采样、批处理
torch.utils.data.DataLoader(batch_size=
shuffle= num_workers= drop_last=)
第 3.6 节 Softmax 回归实现:PyTorch DataLoader 与 MNIST 手写体分类
第 5.7 节 训练数据预处理与缓存:Python 修饰器与数据加载优化
6. 模型训练循环
(PyTorch 实战教程)
fit / evaluate / predict 三段式
optimizer.zero_grad()loss = criterion()
loss.backward()optimizer.step()
model.eval()with torch.no_grad():
model.train()
第 5.4 节 迁移学习教程:预训练模型微调与图像分类实战
第 5.5 节 torchvision 预训练模型:ResNet18 微调与 CIFAR10 分类实战
7. GPU 与多卡并行(PyTorch 多 GPU 训练教程) torch.cuda.is_available() x.to('cuda')
model.cuda() nn.DataParallel(model)
第 5.6 节 多 GPU 训练:数据并行、模型并行与 PyTorch 实现
8. tensorboard + 模型保存(PyTorch 可视化与持久化)
训练监控、checkpoint
torch.utils.tensorboard.SummaryWriter
writer.add_scalar writer.add_image
writer.add_graph(model, x)
torch.save(model.state_dict(),'ckpt.pt') model.load_state_dict()
第 5.3 节 PyTorch 模型保存与加载:模型复用与权重管理
第 5.2 节 TensorBoard 使用教程:训练日志可视化与监控
玩转 BERT 第 3 讲 PyTorch 模型保存与迁移教程:BERT 预训练权重加载、推理与增量训练实战

这 8 大函数类覆盖了 pytorch 入门教程 / pytorch 入门手册 中 90% 的高频代码片段——拿到陌生数据集时,按此清单逐项对照,就能写出一份完整的 PyTorch 训练脚本。

入门到上手 3 步路径#

阶段 PyTorch 入门教程 关键步骤 本站对应章节
第 1 步 安装与环境 pip install torch torchvisionconda install pytorch-cuda=12.1,验证 torch.cuda.is_available() 第 2.2 节 深度学习环境安装:CUDA、PyTorch 与依赖配置教程
第 2.3 节 深度学习开发环境安装配置:Jupyter Notebook 与 PyCharm 使用教程
第 2 步 跑通最小模型 nn.Linear → criterion → loss.backward() → optimizer.step() 四行训练循环,跑通 MNIST 或线性回归 第 3.2 节 线性回归简洁实现
第 3.7 节 从零实现 MNIST 分类
第 3 步 上 CNN / Transformer 引入 nn.Conv2d / nn.Transformer,加 DataLoader + TensorBoard + checkpoint 第 4 章 PyTorch 卷积神经网络实战
图解 Transformer 第 4 讲 Transformer PyTorch 完整实现教程

最小上手代码(pytorch 入门教程标配)#

import torch
from torch import nn, optim
from torch.utils.data import DataLoader, TensorDataset

# 第 1 步 准备数据
X = torch.randn(1024, 784)
y = torch.randint(0, 10, (1024,))
loader = DataLoader(TensorDataset(X, y), batch_size=64, shuffle=True)

# 第 2 步 定义模型:nn.Module + nn.Sequential
model = nn.Sequential(nn.Linear(784, 256), nn.ReLU(), nn.Linear(256, 10))
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model.to(device)

# 第 3 步 损失 + 优化器
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=1e-3)

# 第 4 步 训练循环
for epoch in range(5):
    for xb, yb in loader:
        xb, yb = xb.to(device), yb.to(device)
        loss = criterion(model(xb), yb)
        optimizer.zero_grad()   # 关键:清梯度
        loss.backward()         # autograd 反向
        optimizer.step()        # 更新参数
    print(f"epoch {epoch}: loss={loss.item():.4f}")

更多训练套路可视化、可对比的实战案例,直接看 第 5 章 PyTorch 模型保存、迁移学习与多 GPU 训练玩转 BERT 第 2 讲 BERT 模型 PyTorch 从零实现教程

相关链接#