在 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")

参见 Live.log_artifact()

img = np.ones((500, 500, 3), np.uint8)
live.log_image("image.png", img)

参见 Live.log_image()

live.log_metric("acc", 0.9)

参见 Live.log_metric()

```python live.log_param("num_classes", 10) ```
params = { "num_classes": 10, "metrics": ["accuracy", "mae"], "optimizer": "adam" } live.log_params(params)

参见 Live.log_param() / Live.log_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.log_sklearn_plot()

(可选)更新步骤编号

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 配合使用。

内容

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

在 GitHub 上编辑

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

Discord 聊天