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_losstest_acc:通常在validation_step()test_step()中计算,并在on_validation_epoch_end()on_test_epoch_end()中聚合记录。
    • 默认每个epoch记录一次(30个记录点)。
    • 记录频率由check_val_every_n_epoch参数控制(默认每1个epoch验证一次)。