问题标签 [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.

0 投票
0 回答
37 浏览

dvc - 数据版本控制 (DVC) 就地编辑文件导致循环依赖

我们有一个更大的数据集和几个预处理脚本。这些脚本会更改数据。当我尝试注册它时,它似乎dvc run抱怨循环依赖(输入与输出相同)。我认为这是一个非常常见的用例。

这里的最佳做法是什么?

试图用谷歌搜索,但我没有看到任何解决方案(除了为输出创建另一个文件夹)。

0 投票
1 回答
129 浏览

dvc - 没有导入的派生数据的 DVC 依赖项

我是 DVC 的新手,到目前为止,我喜欢我所看到的。但可能我的问题很容易回答。

我的问题:我们如何正确跟踪派生数据项目中原始hugedatarepo(假设这也可以改变)中文件的依赖关系,但是在签出派生数据时通常不导入大文件?我不认为我可以dvc import用来实现这一点。

详细信息:我们有一个包含大量非常大的数据文件(扫描)的存储库,并使用这些数据来设计和训练各种算法。通常我们只想使用特定文件,甚至只是文件中的小块用于训练、注释等。也就是说,我们为特定任务获取数据,我们希望将其放入新的存储库中。

目前我的想法是对dvc get相关数据,将其放在一个未跟踪的临时文件夹中,然后再次使用 dvc 管理派生数据。但仍然要依赖原始数据。

在派生数据存储库中我做

我的 derivedData.py 做了一些事情(伪代码)

所以我使用元数据文件作为实际数据的代理。hugeFileRepo 数据不会频繁更改,metaData 文件将保持最新。而且我完全可以依赖一般数据而不是我使用的实际文件。所以我相信这个解决方案对我有用,但我相信有更好的方法。

0 投票
1 回答
459 浏览

dvc - 恢复 dvc remove -p 命令

我刚刚使用命令错误地删除了一个 DVC 跟踪文件dvc remove training_data.dvc -p,这导致我的所有训练数据集完全消失。我知道在 Git 中,我们可以轻松地根据其哈希恢复已删除的分支。有谁知道如何恢复我在 DVC 中丢失的所有数据?

0 投票
0 回答
231 浏览

linux - 数据版本控制 (DVC) 命令不起作用 ---> TypeError: public() got an unexpected keyword argument 'SEP'

突然间,dvc 已停止运行。键入的任何命令都会失败并引发异常。例子。dvc 远程列表导致 -

任何建议都会有很大帮助。

0 投票
2 回答
724 浏览

python - 初始化 DVC 存储库会引发错误

我正在尝试使用DVC,并且我正在按照本笔记本中的说明遵循这个 kaggle 教程。每当我尝试使用命令! dvc init时,都会收到以下错误:

我已经安装并重新安装了 dvc。我正在使用 python 3.6 和 windows 8.1。

0 投票
1 回答
161 浏览

unit-testing - 如何在 CI 管道中对使用不属于 git 远程的模型文件的函数进行单元测试?

我正在开发需要相当大的训练模型文件才能运行的机器学习存储库。这些文件不是 git remote 的一部分,而是由 DVC 跟踪并保存在单独的远程存储中。当我尝试在 CI 管道中为需要这些模型文件进行预测的函数运行单元测试时,我遇到了问题。由于我无法在 git 远程访问它们,因此无法测试它们。

人们在这种情况下通常做的最佳实践是什么?我能想到几个选择——

  • 从 CI 管道内的 DVC 远程拉取模型。我不想这样做,因为每次你想运行 push 一些代码时下载模型会很快耗尽我的 CI 使用时间,而且是一个昂贵的选择。
  • 用于unittest.mock模拟模型预测的输出并测试我的代码的其他部分。这就是我现在正在做的事情,但是对于 unittest 的模拟功能来说有点痛苦。据我所知,该模块并没有真正考虑到 ML 开发。它缺少(或很难找到)一些我真正喜欢的功能。有没有专门针对 ML 的好工具来做这件事?
  • 对函数定义进行奇怪的重新格式化,使我基本上可以执行选项 2,但没有模拟模块。也就是只测试周边逻辑,不用担心模型输出。
  • 只需将模型文件放入 git 远程并完成它。仅使用 DVC 跟踪数据。

人们在这种情况下通常会做什么?

0 投票
1 回答
104 浏览

version-control - 控制跟踪的外部依赖版本

我正在尝试为具有不同标记版本的数据集的机器学习数据设置 DVC 存储库。我这样做是这样的:

我有多个项目,每个项目都需要引用该数据集的某个版本。问题是我不知道如何设置这些项目以引用特定版本。我可以通过以下方式跟踪HEAD回购:

这让我获得了最新版本的数据集,符号链接到我的data文件夹中,但是如果我希望一些项目使用该1.0.0版本,而一些项目使用该1.1.0版本,或者另一个版本怎么办?或者就此而言,如果我将数据集更新为2.0.0但不希望我现有的项目必须跟踪HEAD并保留设置它们的版本?

不要为我的数据集创建大量本地副本对我来说很重要,因为/home驱动器比驱动器小得多,/raid而且其中一些数据集很大。

0 投票
1 回答
284 浏览

git - 数据版本控制:管道参数中的绝对路径和项目路径?

在 DVC 中,可以定义管道。在 Unix 中,通常不能在根级别工作。此外,DVC 期望文件位于 git 存储库中。

所以,这似乎是一个典型的问题。

假设我有以下内容:

Git 开始于/home/user/project/

对我来说似乎是合理的:脚本采用存储在特定位置的配置,针对一些封装的功能运行它,并使用绝对路径将其输出到目的地。

的默认行为--dest是输出到当前工作目录。这似乎是另一个合理的默认值。


接下来,我去配置params.yaml文件dvc,我立即感到困惑和不确定会发生什么。我写的:

我想写的(并且会在 shell 脚本中):


但是,在 DVC 中,路径似乎是隐含的,我也不知道从哪里开始:

  1. DVC 将在本地计算我的脚本的路径
  2. 不在本地计算我的脚本的路径

这很好——我可以发现这一点。但我有理由确定 DVC 绝对不会在我的 params.yaml 中的目录和文件参数前面加上我的项目路径。


如何实现不假定固定项目位置的路径控制,就像我在 BASH 中那样?

0 投票
0 回答
182 浏览

dvc - 数据版本控制 (dvc) 无法推送到远程存储,因为查询缓存

我正在使用 webdavs 使用 dvc 设置远程存储

我可以从 Finder 连接到远程存储。

我添加了新的遥控器,当我检查时看到它(dvc 遥控器列表)

但是当我尝试推送数据时,我有 0% Querying cache 的密码请求

它永远保持 0%。当我输入密码时,它以以下错误结束:

错误:意外错误 - 没有与 LINK_OF_REMOTE_STORAGE 的连接

我唯一在想的是如何检查我是否可以从 dvc 连接到服务器以及为什么查询缓存永远不会结束(甚至可能永远不会开始)

0 投票
1 回答
70 浏览

jenkins - jenkins 中的 SSH 自动化

所以我一直致力于流程的自动化,它包括通过 DVC(数据版本控制)从外部源获取数据,为此我使用 SSH 客户端来拉取和推送更改。对于自动化,我使用的是Jenkins,我面临的问题是,对于 ssh,我们需要在运行时提供密码,而在自动化中这不是一个选项。我尝试了多种方法来为 ssh 指定密码,例如 sshpass 和 ssh config,但事实证明 Jenkins 在构建时会在 var/lib/jenkins/....的目录repoName@tmp中创建一些文件名script.sh,因此它正在授予权限被拒绝错误。无论我尝试什么。如果有人可以对此问题提出任何建议,将不胜感激。