DVC 使用指南:项目结构中.dvc文件详解

简介: 您可以使用 dvc add 来跟踪位于当前工作空间中的数据文件或目录。 此外,dvc import 和 dvc import-url 允许您将数据从外部的位置带到您的项目,并开始在本地跟踪它。以 .dvc 扩展名结尾的文件由这些命令创建为可以使用 Git 进行版本控制的数据占位符。 它们包含随时跟踪目标数据所需的信息。

您可以使用 dvc add 来跟踪位于当前工作空间中的数据文件或目录。 此外,dvc importdvc import-url 允许您将数据从外部的位置带到您的项目,并开始在本地跟踪它。

.dvc 扩展名结尾的文件由这些命令创建为可以使用 Git 进行版本控制的数据占位符。 它们包含随时跟踪目标数据所需的信息。

示例如下:

outs:
  - md5: a304afb96060aad90176268345e10355
    path: data.xml
    desc: Cats and dogs dataset
    remote: myremote
# 支持撰写评论和用户元数据信息
meta:
  name: 'Devee Bird'
  email: devee@dvc.org
复制代码


这些文件也是使用 YAML 1.2 文件格式。 我们鼓励您熟悉它,以便您可以自行修改、编写或生成 .dvc 文件。

规格(Specification)说明

这些是 .dvc 文件纲要(schema)中的根级别接受的字段,可以使用#进行注释。

字段 描述
outs (必须的) 表示DVC 跟踪的文件或目录的 输出条目(详情如下所示) 列表。 通常只有一个(但可以手动添加或组合几个)。
deps 依赖条目 (详情如下所示) 的列表。 仅在使用 dvc importdvc import-url 生成此 .dvc 文件时出现。 通常只有一个(但可以手动添加几个)。
wdir outsdeps 路径的工作目录(相对于 .dvc 文件的位置)。文件的位置默认为.
md5 (仅适用于导入).dvc 文件本身的 MD5 哈希。
meta (可选的) 可以使用此字段手动添加任意用户元数据。支持任何的 YAML 内容。 meta 内容会被 DVC 忽略。

注意:dvc reprodvc commit 的执行中保留meta字段和 # 注释,但在文件被 dvc adddvc movedvc importdvc import-url 重写时,不会保留。

输出条目(Output entries)说明

以下子字段可能出现在 outs 条目下:

字段 描述
path (必须的) 文件或目录的路径(相对于wdir,默认为文件的位置)
md5etagchecksum 使用 DVC 跟踪的文件或目录的哈希值。 MD5 用于大多数位置(本地文件系统和 SSH); ETag 用于 HTTPS3Azure ;以及特殊的checksum用于 HDFSWebHDFS
size 文件或目录的大小(所有文件的总和)。
nfiles 如果这个依赖是一个目录,则表示里面文件的数目(递归)。
isexec 是否是可执行文件。 DVC 保留在 dvc checkoutdvc pull 上的执行权限 。 这对目录没有影响,或者通常对 Windows 没有影响。
cache 是否缓存此文件或目录(默认为“true”)。 请参阅 dvc add 命令的--no-commit 选项。
remote (可选的) 用于pushfetch时,远程数据存储的名称。
persist dvc repro 运行时输出文件/目录是否应保留在原位(默认情况下为"false",当dvc repro 启动时,会删除输出)。
desc (可选的) 输出的用户描述(在指标和图表中也支持)。 这个不会影响任何 DVC 操作。

依赖条目(Dependency entries)说明

deps 条目下可能存在以下子字段:

字段 描述
path (必须的) 依赖(dependency)的路径(相对于wdir,默认为文件的位置)
md5etagchecksum 仅在使用 dvc import-url 创建的外部依赖中:导入文件或目录的哈希值。 MD5 用于本地路径和 SSH; ETag 用于 HTTPS3GCSAzure; 以及特殊的checksum用于 HDFSWebHDFS
size 文件或目录的大小(所有文件的总和)。
nfiles 如果这个依赖是一个目录,则表示里面文件的数目(递归)。
repo 仅在使用 dvc import 创建的外部依赖中:它可以包含 urlrevrev_lock(详情如下所示)。

依赖条目(deps )下 repo 子字段说明

字段 描述
url 带有源 DVC 项目的 Git 存储库的 URL
rev 仅当使用 dvc import --rev 时:用于导入依赖的特定提交哈希、分支或Tag名称等(就像Git revision一样)。
rev_lock 导入或更新依赖时(使用 dvc update),外部 DVC 存储库的 Git 提交(commit)哈希


相关文章
|
11月前
|
Web App开发 JSON 数据格式
大麦网item_get - 获取详情数据接口对接全攻略:从入门到精通
大麦网无官方API,本文详解如何合规获取其演出详情数据,涵盖接口分析、反爬应对、Python实战代码及数据解析,助开发者构建稳定票务数据系统。(238字)
|
11月前
|
存储 缓存 数据处理
71_数据版本控制:Git与DVC在LLM开发中的最佳实践
在2025年的大模型(LLM)开发实践中,数据和模型的版本控制已成为确保项目可重复性和团队协作效率的关键环节。与传统软件开发不同,LLM项目面临着独特的数据版本控制挑战:
1083 0
|
缓存 IDE 开发工具
Flutter Demo 的快速编译与运行
Flutter Demo 的快速编译与运行
713 15
|
数据采集 人工智能
Dify 工作流分享-小红书文案生成器
本文介绍了生成小红书文案的具体流程和节点设置,包括输入主题、风格、字数,以及处理URL链接和直接主题的两种方式。最后,三金分享了实际测试效果和相关资源。
3541 1
Dify 工作流分享-小红书文案生成器
|
Kubernetes Cloud Native 微服务
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
870 1
|
监控
ThreeJs限制模型拖动的范围
这篇文章讲解了在Three.js中如何限制模型拖动的范围,确保模型在特定边界内移动,提供了实现拖动限制的代码示例和技术细节。
680 1
ThreeJs限制模型拖动的范围
|
JavaScript
ThreeJs通过DragControls实现物体拖动
这篇文章详细讲解了如何在Three.js中使用DragControls实现3D物体的鼠标拖动功能。
928 1
ThreeJs通过DragControls实现物体拖动
|
缓存 监控 Linux
Linux性能分析利器:全面掌握perf工具
【10月更文挑战第18天】 在Linux系统中,性能分析是确保软件运行效率的关键步骤。`perf`工具,作为Linux内核自带的性能分析工具,为开发者提供了强大的性能监控和分析能力。本文将全面介绍`perf`工具的使用,帮助你成为性能优化的高手。
1309 1
ThreeJs绘制圆柱体
这篇文章介绍了在Three.js中绘制圆柱体的方法,包括创建圆柱体几何体、设置材质以及将其正确放置在三维场景中的技巧。
676 0
ThreeJs绘制圆柱体
R语言错误处理与调试:如何高效调试R代码
【8月更文挑战第28天】调试R代码是一项需要不断练习和提高的技能。通过理解常见的错误类型、使用`traceback()`查看错误路径、逐步执行代码、利用`tryCatch()`捕获和处理错误、设置更严格的警告级别、利用RStudio的调试工具以及编写可复现的示例,你可以更加高效地调试R代码,并快速解决遇到的问题。
1571 3