问题标签 [dvc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - How to execute python from conda environment by dvc run
I have an environment of conda configurated with python 3.6 and dvc is installed there, but when I try to execute dvc run with python, dvc call the python version of main installation of conda and not find the installed libraries.
azure-data-lake - 带有 DVC 的 Azure DataLake
我们正在考虑使用 DVC 对 DataScience 项目的输入数据进行版本控制。我的数据位于 Azure DataLake Gen1。
如何配置 DVC 以使用服务主体将数据推送到 Azure DataLake?我希望 DVC 将缓存和数据存储到 Azure DataLake 中,而不是存储在本地磁盘上。
git - 具有大量图像的机器学习数据集的版本控制?
我们开始使用dvc 和 git 来控制机器学习项目的版本控制。对于 dvc 远程存储,我们使用谷歌云存储。
我们的数据集是 OCR 数据集,包含超过 100000 张小图像,总大小约为 200 MB。使用 dvc 跟踪这个数据集,我们遇到了下一个问题:
- 添加用于跟踪的数据集需要花费大量时间。
- 上传很慢。
- 下载非常慢。
- 在数据集中更新/删除/添加一个图像会导致 dvc 重新计算很多东西:哈希等....
从另一种方式来看,如果我们压缩我们的数据集并将其作为单个文件进行跟踪,dvc 的工作速度就足够快了。但问题是这样我们无法跟踪特定文件的更改。
目标是对具有大量文件的数据集进行版本控制,并具有下一个功能。
- 跟踪每个文件。
- 只提交更改而不是整个数据集。
- 快速结帐/拉
任何关于更好解决方案的建议都可以接受。
dvc - 将丢失的文件读取到 DVC
当远程中缺少某些文件时,DVC 遇到问题。例如,当我执行时,dvc pull
我得到了输出
该dvc status
命令给了我:
似乎2.mp4
和3.mp4
where 在 dvc 控制下添加但dvc push
命令尚未执行。
我可以访问原始的 mp4 文件,并尝试阅读它们。我将 mp4 文件复制到数据文件夹并执行命令:
但是没有效果。如何从 dvc 控制下删除文件并再次添加它们?
dvc - 更新 DVC 中的跟踪目录
根据本教程,当我更新文件时,我应该首先从 DVC 控制下删除文件(即执行dvc unprotect <myfile>.dvc
或dvc remove <myfile>.dvc
),然后通过dvc add <mifile>
. 但是,尚不清楚我是否应该对目录应用相同的工作流程。
我在 DVC 控制下的目录具有以下结构:
dvc unprotect data
每次更新目录内容时我应该运行吗?
更具体地说,如果我应该dvc unprotect data
在以下用例中运行,我很感兴趣:
- 添加了新文件。例如,如果我将
3.jpg
图像放在数据目录中 - 文件被删除。例如,如果我删除目录
2.jpg
中的图像data
- 文件已更新。例如,如果我
1.jpg
通过图形编辑器编辑图像。 - 先前用例的组合(即更新了一些文件,删除了其他文件并添加了新文件)
dvc - 无法忽略 DVC 中的 .DS_Store 文件
我使用 DVC 来跟踪我的媒体文件。我使用 MacOS,我希望 DVC 忽略“.DS_Store”文件。根据 DVC 文档,我可以使用 .dvcignore来实现它。我.dvcignore
使用“.DS_Store”规则创建了文件。但是,每次创建“.DS_Store”时dvc status
仍然表示内容已更改
这是重现我的问题的小测试:
如果我正确理解了 DVC 文档,那么dvc status
应该打印类似“管道是最新的。没有可复制的内容”之类的内容。但是dvc status
给了我:
我如何才能真正忽略“.DS_Store”文件?
更新: .dvcignore 支持在最新版本中显着改进,问题不再相关。
git - 几次本地提交后的“dvc push”
我使用 DVC(数据版本控制)进行项目。假设我做了很多本地提交。像这样的东西:
但是有一个问题:dvc push
只会从实验 3 中推送数据。有没有办法从所有本地提交中推送数据(即从与远程分支分歧的第一个提交开始)?
目前我看到两个选项:
- 标记每个提交并使用
dvc push -T
- 在“经验 3”提交之后
git checkout commit-hash && dvc push
,对所有尚未推送到远程的本地提交执行。
这两个选项看起来都很麻烦且容易出错。有没有更好的方法呢?
dvc - 在 dvc 运行的命令部分扩展环境变量
摘要:我正在尝试使用命令依赖于某些环境变量(例如)的位置来定义一个dvc
步骤。问题是,当我在机器 A 上定义步骤时,变量在存储在文件中时会展开。在这种情况下,将无法在机器 B 上重现该步骤。我是否遇到了限制?如果不是这种情况,那么正确的方法是什么?dvc-run
$HOME
.dvc
dvc
更多详细信息:我在尝试定义命令为docker run
. 比如说:
- 在机器 A
myrepo
上位于/Users/user/myrepo
和 - 在机器 B 上,它位于
/home/ubuntu/myrepo
。
此外,假设我有一个脚本myrepo/script.R
可以处理要在myrepo/data/mydata.txt
. 最后,假设我的步骤命令类似于:
dvc run -f step.dvc -d ... -d ... [cmd]
如果我正在运行上面cmd
的docker
执行,那么在step.dvc
环境变量$HOME
中将被扩展。在这种情况下,步骤将在机器 B 上中断。