记录指标与数据
Tracker 初始化
Section titled “Tracker 初始化”from trailer import Tracker
t = Tracker(project="demo")t = Tracker(project="demo", resume_from="run_a1b2c3") # 恢复历史 runt = Tracker(project="demo", config={"lr": 0.01}) # 记录超参t = Tracker(project="demo", metric_directions={"accuracy": "max"})记录标量指标
Section titled “记录标量指标”t.log({"loss": 0.5, "accuracy": 0.91}, step=10)- 一次可记录多个指标,字典 key 为指标名
step可选;不传时自动递增- 支持 TensorBoard 风格分组命名:
train/loss、val/accuracy,前端自动分组
Step 语义
Section titled “Step 语义”- 显式
step:精确控制 x 轴 - 自动步进:连续
log会自动 +1 - 指标与硬件监控采样在 x 轴(step)上对齐,可切 Step / Wall Time 视图
断点续训(resume)
Section titled “断点续训(resume)”t = Tracker(project="demo", resume_from="run_a1b2c3") # 恢复:复用 run_id,从 last_step 继续- 传同一个
run_id给resume_from,新数据会追加到旧 run 而不是新建。首次运行时把t.run_id持久化(如写入 checkpoint 文件),以便日后恢复 - 恢复时 SDK 会向 server 查询该 run 的 last step,自动步进从
last_step + 1继续;若用显式step=,x 轴起点由你自己控制 - resume 协商总是走 HTTP(
POST /api/v1/runs/{id}/resume+GET /api/v1/runs/{id}/last_step,默认127.0.0.1:5120),本地模式也不例外。需要先trailer up,否则协商静默失败、自动 step 从 0 重新开始 - 三种本地存储后端都支持续训:SQLite(
storage="sqlite",默认)、文件模式(storage="file", data_dir="data")、PostgreSQL(storage="postgres")
t.finish() # 标记 run 完成(state → finished)- SDK 后台每 30s 自动心跳;异常退出 60s 后 server 标记
crashed finish()会刷新剩余缓冲并唤醒采样线程,确保最后一步不丢失
- 写入走线程安全
RingBuffer(10 万条,P99 < 100µs),log()不阻塞训练 - 后台 FlushThread 攒批(500 条 / 1s)批量写入,本地模式经 PyO3 直写,零网络