在 GitHub 上编辑

metrics diff

比较 DVC 仓库 中两个提交之间的 指标,或某个提交与当前 工作区 之间的指标。

要求使用 Git 对项目进行版本控制。

概要

usage: dvc metrics diff [-h] [-q | -v]
                        [--targets [<paths> [<paths> ...]]] [-R]
                        [--all] [--json] [--md] [--no-path]
                        [--precision <n>]
                        [a_rev] [b_rev]

positional arguments:
  a_rev                 Old Git commit to compare (defaults to HEAD)
  b_rev                 New Git commit to compare (defaults to the
                        current workspace)

描述

提供一种快速方式来比较仓库历史中不同实验的指标。该命令显示的差异包括新值以及与之前指标值之间的数值变化(增量,四舍五入保留 5 位小数)。

在不带参数的情况下,dvc metrics diff 会将当前 工作区 中存在的指标(未提交的更改)与最新已提交的版本进行比较(必需)。默认情况下仅列出已更改的指标(使用 --all 可显示所有内容)。

a_revb_rev 是可选的 Git 提交哈希、标签或分支名称,用于指定要比较的版本。若只指定一个版本,则会将其与当前工作区进行比较。

请注意,目标文件不一定必须在 dvc.yaml 中定义。因此,此命令无需依赖现有的 DVC 项目即可运行;它可以在任何 Git 仓库中使用。

默认情况下会使用 dvc.yaml 中定义的所有指标,但也可以通过 --targets 选项指定特定的指标文件。

另一种显示指标的方式是使用 dvc metrics show 命令,该命令列出所有当前指标(不进行对比)。

选项

  • --targets <paths> - 指定要比较的具体指标文件。它可以接受指向任意有效指标文件的 paths,无论 dvc.yaml 是否正在跟踪这些文件中的指标。使用 -R 时,还可以指定用于搜索指标文件的目录。

    当在 revisions 参数前为 --targets 指定参数时,应在该选项参数后使用 --(适用于 POSIX 终端),例如:

    $ dvc metrics diff --targets t1.json t2.yaml -- HEAD v1
  • -R, --recursive - 通过在每个目标目录及其子目录中搜索有效的指标文件来确定要使用的指标文件。如果 --targets 中没有目录,则此选项无效。

  • --all - 列出所有指标,包括未发生变化的指标。

  • --json - 以 JSON 格式(机器可读)输出命令结果,而不是人类可读的表格形式。

  • --md - 以 Markdown 表格格式(GFM)输出命令结果。

  • --no-path - 隐藏列出参数/指标文件位置的“路径”列。例如,当只有一个指标文件时非常有用。

  • --precision <n> - 将小数数值四舍五入到 n 位精度(默认为 5 位)。

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

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

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

示例

首先编写一个简单的 Python 脚本来生成指标:

# train.py
import random
from dvclive import Live

with Live() as live:
    live.log_metric("AUC", random.random())
    live.log_metric("TP", random.randint(0, 1000))

运行脚本并提交:

$ python train.py
$ git add train.py dvclive
$ git commit -m "Add metrics"

现在我们模拟 AUC 指标发生变更:

$ python train.py

$ git diff -- dvclive/metrics.json
 {
-    "AUC": 0.7891189181402177,
-    "TP": 215
+    "AUC": 0.18113944203594523,
+    "TP": 768
 }

要查看变化,请运行 dvc metrics diff。这将把我们当前 工作区(包含未提交的本地更改)的指标与最近一次提交(HEAD)中的指标进行比较:

$ dvc metrics diff
Path                  Metric    HEAD     workspace    Change
dvclive/metrics.json  AUC       0.78912  0.18114      -0.60798
dvclive/metrics.json  TP        215      768          553

示例:在特定版本之间比较指标

通过引用提交记录(任意两个 版本),可以比较使用 Git 提交的指标文件:

$ dvc metrics diff --targets metrics.json -- 305fb8b c7bef55
Path                  Metric    305fb8b  c7bef55  Change
dvclive/metrics.json  AUC       0.9643   0.9743   0.0100
dvclive/metrics.json  TP        527      516      -11
内容

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

在 GitHub 上编辑

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

Discord 聊天