← 课程库
地基 · 数学与工程框架入门代码14 分钟

PyTorch 入门:张量、autograd、nn.Module

让框架替你算梯度

学完这节你能:
  • 会创建张量并做运算
  • 理解 autograd 自动求梯度
  • 会用 nn.Module 定义模型

上一节的梯度,实际中不用手算——PyTorch 的 autograd 会自动帮你算。你只要写「前向计算」,它记录计算图,反向时自动求出每个参数的梯度。

autograd 自动求梯度
import torch
w = torch.tensor(0.0, requires_grad=True)
L = (w - 3) ** 2      # 前向
L.backward()          # 反向:自动算梯度
print(w.grad)         # -> tensor(-6.)  与手算一致
nn.Module 定义一个模型
import torch.nn as nn
class MLP(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc1 = nn.Linear(10, 32)
        self.fc2 = nn.Linear(32, 2)
    def forward(self, x):
        return self.fc2(torch.relu(self.fc1(x)))

🔑 记住三件套:张量(数据+是否需要梯度)、autograd(.backward() 自动求导)、nn.Module(把层组织成模型)。后面训练循环全靠它们。

自测PyTorch 里 requires_grad=True 的张量,调用 loss.backward() 后:
// 带走一句话

PyTorch 三件套:张量、autograd(.backward 自动求梯度)、nn.Module(组织模型);你只写前向。

独立练习

做到这些,才算完成本节

  1. 在本地运行代码,打印每个关键张量的 shape。
  2. 关闭示例后从空文件重写核心部分,并补一个异常或边界测试。
学习记录

记录本节阅读进度

建议先独立回答自测。读完记录不等于已经掌握。

继续下一课
← 上一课
微积分与梯度:梯度下降手算一遍
下一课 →
训练循环骨架:DataLoader、损失、反向传播

学完不要急着赶进度:去练习自测,或完成对应的阶段实验