metrics
概要
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.accuracy
、train.loss
、train.TN
、train.FP
和 time_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