模型训练流程
模型训练流程
本文讲解深度学习模型训练的完整流程,从数据准备到最终测试,附带示意图与可运行代码。
1. 深度学习训练的总体流程
深度学习训练过程可以概括为:
数据准备 → 模型定义 → 损失函数 → 优化器 → 训练循环 → 验证 → 调参 → 测试
2. 训练流程步骤详解
Step 1:准备数据(DataLoader)
DataLoader 会将数据自动打包成 batch,并在训练中批量喂给模型。
Step 2:定义模型(Model)
如:CNN、YOLO、BERT 等。
Step 3:定义损失函数(Loss Function)
常用:
- 分类任务:CrossEntropyLoss
- 回归任务:MSELoss
Step 4:定义优化器(Optimizer)
常用:
- SGD
- Adam
- AdamW
Step 5:训练循环(Training Loop)
模型在这里不断:
- 前向传播
- 计算损失
- 反向传播
- 更新参数
PyTorch 标准训练代码(可直接用)
import torch
import torch.nn as nn
from torch.utils.data import DataLoader, TensorDataset
# ====================== 1. 数据准备 ======================
x = torch.randn(500, 10)
y = torch.randint(0, 2, (500,))
dataset = TensorDataset(x, y)
loader = DataLoader(dataset, batch_size=16, shuffle=True)
# ====================== 2. 定义模型 ======================
model = nn.Sequential(
nn.Linear(10, 64),
nn.ReLU(),
nn.Linear(64, 2)
)
# ====================== 3. 损失函数 + 优化器 ======================
loss_fn = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
# ====================== 4. 训练流程 ======================
for epoch in range(10):
total_loss = 0
for batch_x, batch_y in loader:
preds = model(batch_x)
loss = loss_fn(preds, batch_y)
optimizer.zero_grad()
loss.backward()
optimizer.step()
total_loss += loss.item()
print(f"Epoch {epoch+1}, Loss = {total_loss:.4f}")
print("训练完成!")
6. 验证与测试流程
训练完成后要使用:
- 验证集
- 测试集
代码示例:
model.eval()
correct = 0
with torch.no_grad():
for batch_x, batch_y in loader:
preds = model(batch_x)
predicted = torch.argmax(preds, dim=1)
correct += (predicted == batch_y).sum().item()
acc = correct / len(dataset)
print("准确率:", acc)
7. 总结
深度学习训练流程包含:
- 数据准备
- DataLoader
- 模型搭建
- 损失函数
- 优化器
- 训练循环
- 验证 & 测试
掌握这套流程后,你就能:
- 微调现有模型

浙公网安备 33010602011771号