在 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
类型不受支持时抛出。