DVCLive
DVCLive是一个Python库,用于以简单文件格式记录机器学习指标和其他元数据,完全兼容DVC。
文档
快速入门
安装 dvclive
$ pip install dvclive
初始化DVC仓库
$ git init
$ dvc init
$ git commit -m "DVC init"
示例代码
将以下代码片段复制到train.py
中,作为基本API使用示例:
import time
import random
from dvclive import Live
params = {"learning_rate": 0.002, "optimizer": "Adam", "epochs": 20}
with Live() as live:
# 记录参数
for param in params:
live.log_param(param, params[param])
# 模拟训练
offset = random.uniform(0.2, 0.1)
for epoch in range(1, params["epochs"]):
fuzz = random.uniform(0.01, 0.1)
accuracy = 1 - (2 ** - epoch) - fuzz - offset
loss = (2 ** - epoch) + fuzz + offset
# 将指标记录到studio
live.log_metric("accuracy", accuracy)
live.log_metric("loss", loss)
live.next_step()
time.sleep(0.2)
查看集成以了解使用DVCLive与不同ML框架集成的示例。
运行
多次运行以模拟多个实验:
$ python train.py
$ python train.py
$ python train.py
...
比较
DVCLive的输出可以通过不同方式呈现:
DVC命令行界面
你可以使用dvc exp show和dvc plots来比较和可视化跨实验的指标、参数和图表:
$ dvc exp show
─────────────────────────────────────────────────────────────────────────────────────────────────────────────
实验 创建时间 train.accuracy train.loss val.accuracy val.loss step epochs
─────────────────────────────────────────────────────────────────────────────────────────────────────────────
workspace - 6.0109 0.23311 6.062 0.24321 6 7
master 20:50 - - - - - -
├── 4475845 [aulic-chiv] 20:56 6.0109 0.23311 6.062 0.24321 6 7
├── 7d4cef7 [yarer-tods] 20:56 4.8551 0.82012 4.5555 0.033533 4 5
└── d503f8e [curst-chad] 20:56 4.9768 0.070585 4.0773 0.46639 4 5
─────────────────────────────────────────────────────────────────────────────────────────────────────────────
$ dvc plots diff $(dvc exp list --names-only) --open
VS Code的DVC扩展
在VS Code的DVC扩展中,你可以使用实验和图表视图来比较和可视化结果:
在实验运行期间,两个视图都会显示实时更新。
DVC Studio
如果你将结果推送到DVC Studio,你可以将实验与整个仓库历史进行比较:
你可以启用Studio实时实验以在实验运行时查看实时更新。
与相关技术的比较
DVCLive是一个ML记录器,类似于:
与这些ML记录器的主要区别是:
- DVCLive不需要任何额外的服务或服务器来运行。
- DVCLive的指标、参数和图表以纯文本文件形式存储,可以被Git等工具版本控制,或作为DVC存储中文件的指针进行跟踪。
- DVCLive可以将实验或运行保存为隐藏的Git提交。
然后,你可以使用不同的选项来可视化跨实验的指标、参数和图表。
贡献
非常欢迎贡献。要了解更多信息,请参阅贡献者指南。
许可证
dvclive根据Apache 2.0许可证的条款分发,是自由和开源软件。