Epoch与Global Step的关系¶
- Epoch:表示完整遍历一次训练数据集的次数。
- Global Step:表示模型已经处理过的batch数量(累计值)。
例如: - 若训练集有10,000样本,
batch_size=32,则每个epoch包含10,000/32 ≈ 313个batch。 - 训练30个epoch后,
global_step = 30 * 313 ≈ 9390。
指标记录方式¶
PyTorch Lightning通过以下方式记录指标:
(1) 训练指标 (train_loss, train_acc)¶
-
train_loss:在training_step()中返回的损失值,默认每个batch记录一次(即每global_step+1时记录)。
例如:30个epoch × 10 batch/epoch → 300个train_loss记录点。 -
train_acc:需在training_step()或on_train_epoch_end()中手动计算并调用self.log()。 - 若每个batch记录一次:300个记录点(可能导致噪声)。
- 若每个epoch记录一次:30个记录点(推荐,需在
on_train_epoch_end中计算)。
(2) 验证/测试指标 (test_loss, test_acc)¶
test_loss和test_acc:通常在validation_step()或test_step()中计算,并在on_validation_epoch_end()或on_test_epoch_end()中聚合记录。- 默认每个epoch记录一次(30个记录点)。
- 记录频率由
check_val_every_n_epoch参数控制(默认每1个epoch验证一次)。
评论