在 GitHub 上编辑
DVCLive 文档
DVCLive 3.0 现已发布。前往 发布说明 查看更新内容。
本文档详细介绍了可直接导入使用的 dvclive
Python API 模块,例如:
from dvclive import Live
如果您使用的是受支持的 机器学习框架之一,可直接跳转到对应页面。
基本工作流程
初始化 DVCLive
with Live() as live:
详情请见 Live()
。
记录数据
live.log_artifact("model.pt", type="model", name="gpt")
img = np.ones((500, 500, 3), np.uint8)
live.log_image("image.png", img)
参见 Live.log_image()
。
live.log_metric("acc", 0.9)
```python live.log_param("num_classes", 10) ```
params = { "num_classes": 10, "metrics": ["accuracy", "mae"], "optimizer": "adam" } live.log_params(params)
datapoints = [
{"name": "petal_width", "importance": 0.4},
{"name": "petal_length", "importance": 0.33},
{"name": "sepal_width", "importance": 0.24},
{"name": "sepal_length", "importance": 0.03}
]
live.log_plot(
"iris", datapoints, x="importance", y="name",
template="bar_horizontal", title="Iris Feature Importance"
)
参见 Live.log_plot()
。
y_true = [0, 0, 1, 1]
y_pred = [0.2, 0.5, 0.3, 0.8]
live.log_sklearn_plot("roc", y_true, y_score)
(可选)更新步骤编号
live.next_step()
参见 Live.next_step()
。
在底层,Live.next_step()
会调用 Live.make_summary()
、Live.make_dvcyaml()
和 Live.make_report()
。
当启用了 访问权限 后,更新将被发送至 DVC Studio。
如果您希望将 step
的更新与其他调用解耦,可以手动修改 Live.step
属性,并手动调用 Live.make_summary()
/ Live.make_dvcyaml()
/ Live.make_report()
。
整合所有步骤
结合以上代码片段,您可以在训练代码中集成 DVCLive:
# train.py
from dvclive import Live
with Live() as live:
live.log_param("epochs", NUM_EPOCHS)
for epoch in range(NUM_EPOCHS):
train_model(...)
metrics = evaluate_model(...)
for metric_name, value in metrics.items():
live.log_metric(metric_name, value)
live.next_step()
live.log_artifact(path, type="model", name=name)
输出结果
运行训练代码后,所有记录的数据将保存在 dvclive
目录 中,并作为 DVC 实验 被 追踪,以便进行分析和比较。
使用 DVC 运行
在 Python 中以交互方式实验(例如在 Notebook 中)非常适合探索,但最终你可能需要一种更结构化的方式来运行可复现的实验。通过配置 DVC 流水线,你可以使用 运行实验 命令 dvc exp run
。流水线可帮助你组织机器学习工作流,超越单个 Notebook 或脚本,从而实现代码的模块化和参数化。查看如何设置流水线以与 DVCLive 配合使用。