当前位置: 首页 > article >正文

DVC - 数据版本和机器学习实验的命令行工具和 VS Code 扩展

在这里插入图片描述

文章目录

    • 一、关于 DVC
    • 二、快速启动
    • 三、DVC的工作原理
    • 四、VS代码扩展
    • 五、安装
      • Snapcraft(Linux)
      • Chocolatey (Windows)
      • Brew (mac OS)
      • Anaconda (Any platform)
      • PyPI(Python)
      • Package (Platform-specific)
        • Ubuntu / Debian (deb)
        • Fedora / CentOS (rpm)


一、关于 DVC

DVC : Data Version Control

DVC是一个命令行工具和VS Code扩展,可帮助您开发可重现的机器学习项目:

  1. 版本化您的数据和模型。将它们存储在您的云存储中,但将它们的版本信息保存在您的Git存储库中。
  2. 使用轻量级管道快速迭代。进行更改时,仅运行受这些更改影响的步骤。
  3. 在本地Git存储库中跟踪实验(不需要服务器)。
  4. 比较任何数据、代码、参数、模型或性能图。
  5. 共享实验并自动复制任何人的实验。
  • github : https://github.com/iterative/dvc
  • 网站 : https://dvc.org/
  • 文档 : https://dvc.org/doc
  • 博客 : http://blog.dataversioncontrol.com/
  • 教程 : https://dvc.org/doc/get-started
  • 相关技术 | DVC如何工作 | VS代码扩展 | 安装
  • 贡献 | 社区和支持

🚀如果您需要对大量文件进行版本化和处理,请查看产品DataChain,联系 support@iterative.ai 讨论商业解决方案以及对AI可重复性和数据管理场景的支持。


二、快速启动

请阅读命令参考以获取完整列表。

常见的CLI工作流程包括:

任务终端
跟踪数据$ git add train.py params.yaml
$ dvc add images/
连接代码和数据$ dvc stage add -n featurize -d images/ -o features/ python featurize.py
$ dvc stage add -n train -d features/ -d train.py -o model.p -M metrics.json python train.py
做出改变和实验$ dvc exp run -n exp-baseline
$ vi train.py
$ dvc exp run -n exp-code-change
比较和选择实验$ dvc exp show
$ dvc exp apply exp-baseline
共享代码$ git add .
$ git commit -m 'The baseline model'
$ git push
共享数据和ML模型$ dvc remote add myremote -d s3://mybucket/image_cnn
$ dvc push

三、DVC的工作原理

我们鼓励您阅读我们的入门文档,以更好地了解DVC的功能以及它如何适合您的场景。

描述主要DVC功能的最接近的类比是:

  1. 用于数据的Git:存储和共享数据工件(如Git-LFS,但没有服务器)和模型,将它们与Git存储库连接起来。数据管理遇到GitOps!
  2. Makefile for ML:描述如何以标准格式从其他数据和代码构建数据或模型工件。现在您可以使用Git版本您的数据管道。
  3. 本地实验跟踪:将您的机器变成ML实验管理平台,并使用现有的Git托管(Github、Gitlab等)与其他人协作。

Git像往常一样被用来存储和版本代码(包括DVC元文件作为数据的占位符)。DVC在Git之外的缓存中无缝地存储数据和模型文件,同时保持几乎与存储库中相同的用户体验。为了共享和备份数据高速缓存,DVC支持多个远程存储平台——任何云(S3、Azure、谷歌云等)或本地网络存储(例如通过SSH)。

在这里插入图片描述


DVC管道(计算图)将代码和数据连接在一起。它们指定了生成模型所需的所有步骤:输入依赖项,包括代码、数据、要运行的命令;和要保存的输出信息。

最后但并非最不重要的一点是,DVC实验版本控制让您可以准备和运行大量的实验,它们的结果可以基于超参数和指标进行过滤和比较,并通过多图进行可视化。


四、VS代码扩展

要直接从VS Code IDE将DVC用作GUI,请从Marketplace安装DVC扩展。它目前具有实验跟踪和数据管理功能,更多功能(数据管道支持等)即将推出!

https://raw.githubusercontent.com/iterative/vscode-dvc/main/extension/docs/overview.gif


注意:您必须单独在系统上安装核心DVC(如下所述)。如果需要,扩展程序将指导您。


五、安装

有几种方法可以安装DVC:在VS Code中;使用snapchocobrewcondapip;或者使用特定于操作系统的软件包。这里提供完整的说明。


Snapcraft(Linux)

https://snapcraft.io/dvc

snap install dvc --classic

这对应于最新标记的发布版本。添加--beta用于最新标记的发布版本,或--edge用于最新的main版本。


Chocolatey (Windows)

https://chocolatey.org/packages/dvc

choco install dvc

Brew (mac OS)

https://formulae.brew.sh/formula/dvc

brew install dvc

Anaconda (Any platform)

https://anaconda.org/conda-forge/dvc

conda install -c conda-forge mamba # installs much faster than conda
mamba install -c conda-forge dvc

根据您计划用于保留和共享数据的远程存储类型,您可能需要安装可选依赖项:dvc-s3、dvc-azure、dvc-gdrive、dvc-gs、dvc-oss、dvc-ssh。


PyPI(Python)

https://pypi.org/project/dvc

pip install dvc

根据您计划用于保存和共享数据的远程存储类型,您可能需要指定一个可选依赖项:s3gsazureossssh。或者all包含它们。命令应该如下所示:pip install 'dvc[s3]'(在这种情况下,AWS S3依赖项,如boto3将自动安装)。

要安装开发版本,请运行:

pip install git+git://github.com/iterative/dvc

Package (Platform-specific)

https://dvc.org/doc/install

适用于Linux、Windows和Mac的独立软件包可用。最新版本的软件包可以在GitHub发布页面上找到。


Ubuntu / Debian (deb)
sudo wget https://dvc.org/deb/dvc.list -O /etc/apt/sources.list.d/dvc.list
wget -qO - https://dvc.org/deb/iterative.asc | sudo apt-key add -
sudo apt update
sudo apt install dvc

Fedora / CentOS (rpm)
sudo wget https://dvc.org/rpm/dvc.repo -O /etc/yum.repos.d/dvc.repo
sudo rpm --import https://dvc.org/rpm/iterative.asc
sudo yum update
sudo yum install dvc

相关文章:

DVC - 数据版本和机器学习实验的命令行工具和 VS Code 扩展

文章目录 一、关于 DVC二、快速启动三、DVC的工作原理四、VS代码扩展五、安装Snapcraft(Linux)Chocolatey (Windows)Brew (mac OS)Anaconda (Any platform)PyPI(Python)Package (Platform-specific)Ubuntu / Debian (deb)Fedora /…...

理解神经网络:Brain.js 背后的核心思想

温馨提示 这篇文章篇幅较长,主要是为后续内容做铺垫和说明。如果你觉得文字太多,可以: 先收藏,等后面文章遇到不懂的地方再回来查阅。直接跳读,重点关注加粗或高亮的部分。放心,这种“文字轰炸”不会常有的,哈哈~ 感谢你的耐心阅读!😊 欢迎来到 brain.js 的学习之旅!…...

Maui学习笔记- SQLite简单使用案例02添加详情页

我们继续上一个案例,实现一个可以修改当前用户信息功能。 当用户点击某个信息时,跳转到信息详情页,然后可以点击编辑按钮导航到编辑页面。 创建项目 我们首先在ViewModels目录下创建UserDetailViewModel。 实现从详情信息页面导航到编辑页面…...

typescript 简介

可选链操作符 可选链操作符( ?. ) 允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(nullish ) (null 或者 undefined) 的情况下不会引起错误&a…...

selenium定位网页元素

1、概述 在使用 Selenium 进行自动化测试时,定位网页元素是核心功能之一。Selenium 提供了多种定位方法,每种方法都有其适用场景和特点。以下是通过 id、linkText、partialLinkText、name、tagName、xpath、className 和 cssSelector 定位元素的…...

Autogen_core 测试代码:test_cache_store.py

目录 原始代码测试代码代码中用到的typing注解 原始代码 from typing import Dict, Generic, Optional, Protocol, TypeVarT TypeVar("T")class CacheStore(Protocol, Generic[T]):"""This protocol defines the basic interface for store/cache o…...

变压器的漏感

测量变压器漏感的时候需要将次级绕组短路: 测量变压器初级线圈的电感方法很简单,直接用LCR测量就可,无需像测量漏感那样将次级绕组短接:...

【新春特辑】2025年春节技术展望:蛇年里的科技创新与趋势预测

🔥【新春特辑】2025年春节技术展望:蛇年里的科技创新与趋势预测 📅 发布日期:2025年01月29日(大年初一) 在这个辞旧迎新的美好时刻,我们迎来了充满希望的2025年,也是十二生肖中的蛇…...

cursor软件的chat和composer分别是什么

Cursor 是一款基于人工智能的代码编辑器,集成了类似 ChatGPT 的功能,旨在帮助开发者更高效地编写代码。以下是 Cursor 中 Chat 和 Composer 的具体功能: 1. Chat Cursor 中的 Chat 是一个基于 AI 的聊天功能,类似于 ChatGPT&…...

从ChatGPT热潮看智算崛起

2025年1月7日,科智咨询发布《2025年IDC产业七大发展趋势》,其中提到“ChatGPT开启生成式AI热潮,智能算力需求暴涨,算力供给结构发生转变”。 【图片来源于网络,侵删】 为何会以ChatGPT发布为节点呢?咱们一起…...

攻克 AI 幻觉难题

当下,AI 已经成为我们生活中不可或缺的一部分。无论是智能语音助手,还是对话式的AI模型,它们凭借强大的算法和海量的数据,为我们答疑解惑、出谋划策。 然而,小编今天向AI提问:上山打老虎。他却回答&#x…...

格式化时间的插件

1.安装dayjs包 npm i dayjs 2.组件中的应用...

自创《艺术人生》浅析

艺术是生活的馈赠,艺术是苦痛的呻吟。 笔记模板由python脚本于2025-01-29 00:01:11创建,本篇笔记适合喜欢写诗读诗诵诗的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值:在于输出思考与经验,而不仅仅是知识的简单复述。 …...

【Python-办公自动化】实现自动化输出json数据类型的分析报告和正逆转换

分析报告 import json from pprint import pprint, PrettyPrinterdef analyze_energy_data(file_path):"""能源数据分析与结构查看函数参数:file_path (str): JSON文件路径功能:1. 加载并解析JSON数据2. 显示数据结构概览3. 交互式结构探索"""…...

防御保护第一次实验:安全策略配置

一、实验拓扑 二、实验要求 三、需求分析 1.创建两个vlan 2.在ENSP中配置基于时间的ACL实现对于办公区PC访问OA Server的时间限制(工作日早8到晚6)。 3.通过配置基于MAC地址的ACL来实现对于生产区PC访问Web Server的限制(除PC3外不能访问&am…...

【Pytest】生成html报告中,中文乱码问题解决方案

链接上一篇文章:https://blog.csdn.net/u013080870/article/details/145369926?spm1001.2014.3001.5502 中文乱码问题,python3,Python3.7后,还一个文件就是result.py 因为中文可以在内容中,也可能在文件名,类名&…...

【ollama通过命令行启动后如何在网页端查看运行】

ollama通过命令行启动后如何在网页端查看运行 http://localhost:11434/...

Android createScaledBitmap与Canvas通过RectF drawBitmap生成马赛克/高斯模糊(毛玻璃)对比,Kotlin

Android createScaledBitmap与Canvas通过RectF drawBitmap生成马赛克/高斯模糊(毛玻璃)对比,Kotlin import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.Canvas import android.graphics.RectF …...

Jetpack Compose 和 Compose Multiplatform 还有 KMP 的关系

今天刚好看到官方发布了一篇文章,用于讨论 Compose Multiplatform 和 Jetpack Compose 之间的区别,突然想起之前评论区经常看到说 “Flutter 和 CMP 对于 Google 来说项目重叠的问题”,刚好可以放一起聊一聊。 最近写的几篇内容写的太干&…...

基于STM32的智能宠物喂食器设计

目录 引言系统设计 硬件设计软件设计 系统功能模块 定时喂食模块远程控制与视频监控模块食物存量检测与报警模块语音互动与用户交互模块数据记录与智能分析模块 控制算法 定时与手动投喂算法食物存量检测与低存量提醒算法数据记录与远程反馈算法 代码实现 喂食控制代码存量检测…...

python生成图片和pdf,快速

1、下载安装 pip install imgkit pip install pdfkit2、wkhtmltopdf工具包,下载安装 下载地址:https://wkhtmltopdf.org/downloads.html 3、生成图片 import imgkit path_wkimg rD:\app\wkhtmltopdf\bin\wkhtmltoimage.exe # 工具路径,安…...

解锁FPGA的故障免疫密码

我们身处“碳基智能”大步迈向“硅基智能”序曲中,前者更像是后者的引导程序,AI平民化时代,万物皆摩尔定律。 越快越好,几乎适用绝大多数场景。 在通往人工智能的征程中,算力无处不在,芯片作用无可替代。 十六年前,就已宣称自己是一家软件公司的英伟达,现已登顶全球…...

【数据结构】初识链表

顺序表的优缺点 缺点: 中间/头部的插入删除,时间复杂度效率较低,为O(N) 空间不够的时候需要扩容。 如果是异地扩容,增容需要申请新空间,拷贝数据,释放旧空间,会有不小的消耗。 扩容可能会存在…...

【hot100】刷题记录(6)-轮转数组

题目描述: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转…...

如何移植ftp服务器到arm板子?

很多厂家提供的sdk,一般都不自带ftp服务器功能, 需要要发人员自己移植ftp服务器程序。 本文手把手教大家如何移植ftp server到arm板子。 环境 sdk:复旦微 Buildroot 2018.02.31. 解压 $ mkdir ~/vsftpd $ cp vsftpd-3.0.2.tar.gz ~/vs…...

深度学习 Pytorch 神经网络的损失函数

本节开始将以分类神经网络为例,展示神经网络的学习和训练过程。在介绍PyTorch的基本工具AutoGrad库时,我们系统地介绍过数学中的优化问题和优化思想,我们介绍了最小二乘法以及梯度下降法这两个入门级优化算法的具体操作,并使用Aut…...

Node.js 的底层原理

Node.js 的底层原理 1. 事件驱动和非阻塞 I/O Node.js 基于 Chrome V8 引擎,使用 JavaScript 作为开发语言。它采用事件驱动和非阻塞 I/O 模型,使其轻量且高效。通过 libuv 库实现跨平台的异步 I/O,包括文件操作、网络请求等。 2. 单线程事…...

C++ 中用于控制输出格式的操纵符——setw 、setfill、setprecision、fixed

目录 四种操纵符简要介绍 setprecision基本用法 setfill的基本用法 fixed的基本用法 setw基本用法 以下是一些常见的用法和示例: 1. 设置字段宽度和填充字符 2. 设置字段宽度和对齐方式 3. 设置字段宽度和精度 4. 设置字段宽度和填充字符,结合…...

996引擎 - NPC-添加NPC引擎自带形象

996引擎 - NPC-添加NPC引擎自带形象 截图参考添加NPC参考资料截图参考 添加NPC 编辑NPC表:Envir\DATA\cfg_npclist.xls 1.1. 需要临时隐藏NPC时可以在id前加 // 1.2. 如果NPC朝向不对,可以调整dir 列。(按8方向,上是0顺时针数。我这里给的4) 1.3. 形象代码:NPC代码、怪物…...

深度研究新范式:通过Ollama和DeepSeek R1实现自动化研究

引言 在信息时代,海量数据的产生与传播速度前所未有地加快,这既为研究者提供了丰富的资源,也带来了信息筛选与处理的巨大挑战。 传统研究方法往往依赖于研究者的个人知识库、文献检索技能以及时间投入,但面对指数级增长的数据量…...