feat(simclr): 支持断点续训,恢复优化器与调度器状态
此前 simclr.checkpoint 的语义是"有权重就跳过训练",没有真正的续训: 中途停掉再启动只能从头再来,或者放弃已训的轮次。 - 新增 simclr_last.pth:骨架 + 投影头 + 优化器 + 调度器 + scaler + epoch + step, 与给下游用的 simclr_backbone.pth 并存,两者在同一时机落盘 - 新增 simclr.resume:载入完整状态从下一个 epoch 接着练。只恢复权重不恢复动量与 cosine 进度的话,续训时损失会先反弹一段 - resume 与 checkpoint 互斥(同时给直接报错);拿只含骨架的 simclr_backbone.pth 去 resume 会给出可操作的报错,提示改用 checkpoint - 续训轮数已达计划值时不再训练,只打警告 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
be6173c746
commit
345dee50da
@@ -740,6 +740,7 @@ $k=4$ 稳定性略低于 ImageNet(0.83 vs 0.98),符合"数据的主结构
|
||||
| 端到端聚类 | `engine/cluster.py::cluster_features` |
|
||||
| NT-Xent 损失 | `engine/simclr.py::nt_xent_loss` |
|
||||
| SimCLR 训练循环 | `engine/simclr.py::SimCLRTrainer` |
|
||||
| 断点续训(完整状态存取) | `engine/simclr.py::save_state` / `load_state` |
|
||||
| 投影头 $g_\varphi$ | `models/heads/projection.py::ProjectionHead` |
|
||||
| 设备解析(cuda/mps/cpu,auto 优先级) | `utils/device.py::resolve_device` |
|
||||
| AMP 随后端的默认值 | `utils/device.py::resolve_amp` / `default_amp` |
|
||||
|
||||
Reference in New Issue
Block a user