在 GitHub 上编辑
Live.log_metric()
def log_metric(
name: str,
val: Union[int, float, str],
timestamp: bool = False,
plot: Optional[bool] = True
):用法
from dvclive import Live
with Live() as live:
live.log_metric("train/loss", 0.4)
live.log_metric("val/loss", 0.9)描述
每次调用 Live.log_metric(name, val) 时,DVCLive 会在 {Live.plots_dir}/metrics/{name}.tsv 中创建一个指标历史文件:
dvclive
├── metrics.json
└── plots
└── metrics
├── train
│ └── loss.tsv
└── val
└── loss.tsv$ cat dvclive/plots/metrics/train/loss.tsv
timestamp step loss
1623671484747 0 0.4可以使用 dvc plots 可视化这些指标历史:
$ dvc plots diff dvclive/plots每次后续调用 Live.log_metric(name, val) 都会向 {Live.plots_dir}/metrics/{name}.tsv 添加一行新数据:
live.next_step()
live.log_metric("train/loss", 0.2, timestamp=True)
live.log_metric("val/loss", 0.4, timestamp=True)timestamp step loss
1623671484747 0 0.4
1623671484892 1 0.2此外,DVCLive 会将最新记录的值存储在 Live.summary 中,以便通过调用 Live.make_summary()、Live.next_step() 或退出 with 块时进行序列化:
{
"step": 1,
"train": {
"loss": 0.2
},
"val": {
"loss": 0.4
}
}可以使用 dvc metrics 可视化指标摘要:
$ dvc metrics diff dvclive/metrics.json参数
-
name- 要记录的指标名称。 -
val- 要记录的值。 -
timestamp- 是否在指标历史文件中自动记录时间戳。 -
plot- 是否将指标值添加到指标历史文件中以供绘图。若为False,则该指标仅保存至指标摘要。
异常
dvclive.error.InvalidDataTypeError- 当提供的val类型不受支持时抛出。