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

🐛 发现问题?告诉我们!或者修复它:

在 GitHub 上编辑

有疑问?加入我们的聊天,我们会为您提供帮助:

Discord 聊天