feat(simclr): 接入 SwanLab 可视化,并补上本地看板缺失的依赖

- SimCLRTrainer 记录 simclr/loss、loss_avg、lr(按 step)与 epoch_loss、
  epoch_seconds、gpu_mem_peak_mb(按 epoch),超参为完整 yaml 配置;
  正常结束与 KeyboardInterrupt 两条路径都会 finish()
- 配置新增 simclr.swanlab(字段同 train.swanlab),默认 mode: local,
  不需要登录,日志写到 <work_dir>/swanlog
- 依赖改为 swanlab[dashboard]:此前 `swanlab watch` 在干净环境里会报
  "Please install the swanboard package",README 里检测训练那节的看板命令
  同样受影响,现已随 uv sync 装好
- README 补齐本地看板/云端/离线补传三种用法与端口、局域网参数

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Shaun Zhou
2026-09-03 09:24:39 +08:00
co-authored by Claude Opus 5
parent 7d5b6ec423
commit be6173c746
7 changed files with 304 additions and 14 deletions
+10
View File
@@ -99,6 +99,16 @@ simclr:
temperature: 0.2 # 越小越关注难负样本
amp: auto # CUDA 上开、MPS 上关
save_interval: 5 # 每 5 个 epoch 落一次盘,中途中断也能拿到权重
# 训练可视化,字段与 train.swanlab 相同。默认 local:不需要登录,
# 日志写到 <work_dir>/swanlog,另开终端 `uv run swanlab watch runs/simclr/swanlog` 看板。
swanlab:
enabled: true
project: film-simclr
name: null # 缺省用 work_dir 目录名
mode: local # online(云端) | local(本地看板) | offline(仅存盘) | disabled
tags: [simclr, tiny_conv]
log_interval: 20
checkpoint: null # 填已有的 simclr_backbone.pth 可跳过重复训练
projection: {hidden_channels: 256, out_channels: 128}