跳转到主要内容

ML项目的实验记录器。

项目描述

DVCLive

PyPI Status Python Version License

Tests Codecov pre-commit Black

DVCLive是一个Python库,用于以简单文件格式记录机器学习指标和其他元数据,与DVC完全兼容。

文档


快速入门

Python API概述 PyTorch Lightning Scikit-learn Ultralytics YOLO v8

安装 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:

    # log a parameters
    for param in params:
        live.log_param(param, params[param])

    # simulate training
    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

        # log metrics to studio
        live.log_metric("accuracy", accuracy)
        live.log_metric("loss", loss)
        live.next_step()
        time.sleep(0.2)

有关使用 DVCLive 与不同机器学习框架的示例,请参阅 集成

运行

运行几次以模拟多个实验

$ python train.py
$ python train.py
$ python train.py
...

比较

DVCLive 输出可以以不同的方式呈现

DVC 命令行界面

您可以使用 dvc exp showdvc plots 来比较和可视化实验中的指标、参数和图表

$ dvc exp show
─────────────────────────────────────────────────────────────────────────────────────────────────────────────
Experiment                 Created    train.accuracy   train.loss   val.accuracy   val.loss   step   epochs
─────────────────────────────────────────────────────────────────────────────────────────────────────────────
workspace                  -                  6.0109      0.23311          6.062    0.24321      6   7
master                     08:50 PM                -            -              -          -      -   -
├── 4475845 [aulic-chiv]   08:56 PM           6.0109      0.23311          6.062    0.24321      6   7
├── 7d4cef7 [yarer-tods]   08:56 PM           4.8551      0.82012         4.5555   0.033533      4   5
└── d503f8e [curst-chad]   08:56 PM           4.9768     0.070585         4.0773    0.46639      4   5
─────────────────────────────────────────────────────────────────────────────────────────────────────────────
$ dvc plots diff $(dvc exp list --names-only) --open

dvc plots diff

DVC for VS Code 扩展

DVC for VS Code 扩展 中,您可以使用 实验图表 视图来比较和可视化结果

VSCode Experiments

VSCode Plots

当实验正在运行时,这两个视图都会显示实时更新。

DVC Studio

如果您将结果推送到 DVC Studio,则可以比较实验与整个仓库历史记录

Studio Compare

您可以启用 Studio Live Experiments 以在实验运行时查看实时更新。


与相关技术的比较

DVCLive 是一个 ML 记录器,类似于

与这些 ML 记录器 的主要区别是

  • DVCLive 不需要 任何额外的服务或服务器即可运行。
  • DVCLive 的指标、参数和图表以 纯文本文件 的形式存储,这些文件可以使用 Git 等工具进行版本控制,或作为指向 DVC 存储中文件的指针进行跟踪。
  • DVCLive 可以将实验或运行保存为 隐藏 Git 提交

然后,您可以使用不同的 选项 来可视化实验中的指标、参数和图表。


贡献

欢迎贡献。要了解更多信息,请参阅 贡献指南

许可协议

Apache 2.0 许可协议 下分发,dvclive 是免费且开源的软件。

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面