PyTorch上手关键在于掌握张量和自动微分:张量是数据基石,支持GPU加速与梯度追踪;用nn.Module搭建模型需定义层与forward逻辑;训练循环含数据加载、前向计算、损失计算、反向传播、参数更新五步。
PyTorch 上手不难,关键在理解张量(Tensor)和自动微分(Autograd)这两个核心机制。只要掌握数据定义、模型搭建、训练循环三步,就能跑通一个完整流程。
所有数据都以 torch.Tensor 形式存在,类似 NumPy 数组,但支持 GPU 加速和梯度追踪。
torch.tensor([1, 2, 3]) 或 torch.randn(2, 3)(随机初始化)requires_grad=True,例如 x = torch.tensor(2.0, requires_grad=True)
y = x ** 2 + 3 * x 后,y 会记录依赖关系,为反向传播做准备自定义模型需继承 torch.nn.Module,并在 __init__ 中定义层,在 forward 中写前向逻辑。
nn.Linear(784, 128)、激活函数 nn.ReLU()、Dropout nn.Dropout(0.5)
forward 方法里不要调用 .backward() 或 .zero_grad(),那是训练循环的事model.train() 和 model.eval() 控制 Dropout/BatchNorm 行为一个标准训练步骤包含数据加载、前向计算、损失计算、反向传播、参数更新。
立即学习“Python免费学习笔记(深入)”;
torch.utils.data.DataLoader 加载批量数据,支持 shuffle 和多进程criterion = nn.CrossEntropyLoss(),输入 logits 和真实标签即可loss.backward(),再用优化器(如 torch.optim.SGD(model.parameters(), lr=0.01))调用 step()
optimizer.zero_grad()
推荐保存模型参数(state_dict),而不是整个模型对象,更轻量、更灵活。
torch.save(model.state_dict(), "model.pth")
model.load_state_dict(torch.load("model.pth"))
torch.save({"model": model.state_dict(), "optimizer": opt.state_dict()}, ...)
不复杂但容易忽略:确保训练时模型在训练模式、验证时切换到评估模式;GPU 上运行记得把数据和模型都调用 .to(device);调试初期可先用小数据集和单步训练验证流程是否通顺。