地基 · 数学与工程框架入门代码约 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(组织模型);你只写前向。
独立练习
做到这些,才算完成本节
- 在本地运行代码,打印每个关键张量的 shape。
- 关闭示例后从空文件重写核心部分,并补一个异常或边界测试。
学习记录
记录本节阅读进度
建议先独立回答自测。读完记录不等于已经掌握。