在 GitHub 上编辑

metrics

一组用于显示和比较指标的命令:showdiff

概要

usage: dvc metrics [-h] [-q | -v] {show,diff} ...

positional arguments:
  COMMAND
    show                Print metrics, with optional formatting
    diff                Show changes in metrics between commits.

描述

为了跟踪机器学习实验的性能,DVC 能够将包含键/值对的结构化文件标记为指标。这些指标是项目特定的浮点数、整数或字符串值,例如 AUC、ROC、误报数等。

如果使用DVCLive,文件会自动生成,指标也会自动配置。指标文件也可以手动添加到dvc.yaml中。

dvc plots不同,这些指标应存储在具有层级结构的文件中。与dvc plots相对应的功能不同,dvc metrics diff可以报告不同实验之间指标的数值差异。例如,某个AUC指标从0.801807增加了+0.037826

$ dvc metrics diff
Path          Metric    HEAD      workspace  Change
metrics.json  AUC       0.763981  0.801807   0.037826

dvc metrics 子命令可用于任何有效的指标文件。默认情况下,它们使用在dvc.yaml中指定的文件(如果有),包括由 DVCLive 自动添加的文件。例如下面的 summary.json

metrics:
  - summary.json

支持的文件格式

指标可以以树状层次结构组织在 JSON、TOML 1.0 或 YAML 1.2 文件中。DVC 通过树路径来引用具体的指标。以下 JSON 示例中展示了五个指标:train.accuracytrain.losstrain.TNtrain.FPtime_real

{
  "train": {
    "accuracy": 0.9886999726295471,
    "loss": 0.041855331510305405,
    "TN": 473,
    "FP": 845
  },
  "time_real": 344.61309599876404
}

DVC 本身不对这些数值赋予特定含义。通常它们由模型训练或模型评估代码生成,用作比较并选择表现最佳实验的方法。

选项

  • -h, --help - 打印使用说明/帮助信息,然后退出。

  • -q, --quiet - 不向标准输出写入任何内容。如果没有问题则以 0 退出,否则以 1 退出。

  • -v, --verbose - 显示详细的跟踪信息。

示例

首先,假设我们有一个简单的 Python 脚本,使用 DVCLive 记录一些指标:

from dvclive import Live

with Live() as live:
    ...
    live.log_metric("AUC", auc)
    live.log_metric("error", error)
    live.log_metric("TP", tp)

这将生成一些日志文件,包括 dvclive/metrics.json,其内容如下:

{
  "AUC": 0.66729,
  "error": 0.16982,
  "TP": 516
}

它还会生成dvc.yaml,其中包含:

metrics:
  - dvclive/metrics.json

现在让我们使用dvc metrics show打印在此项目中跟踪的指标值:

$ dvc metrics show
Path                  AUC      TP    error
dvclive/metrics.json  0.66729  516   0.16982

当指标文件发生更改时(在使用 Git 提交之前),dvc metrics diff 命令将显示指标值之间的差异:

$ dvc metrics diff

Path                  Metric    HEAD     workspace  Change
dvclive/metrics.json  AUC       0.65115  0.66729    0.01614
dvclive/metrics.json  error     0.1666   0.16982    0.00322
dvclive/metrics.json  TP        528      516        -12
内容

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

在 GitHub 上编辑

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

Discord 聊天