标签: dvc

dvc(数据版本控制)错误 - ImportError:无法从“fsspec.asyn”导入名称“fsspec_loop”

我使用 Python 版本 3.7.13 并为 MLOps 项目创建虚拟环境 (venv)。

此 venv 中安装了与 Python== 3.7.13 兼容的 dvc 包(=2.10.2)。

(venv) (base) tony3@Tonys-MacBook-Pro mlops % dvc --version
2.10.2
Run Code Online (Sandbox Code Playgroud)

但是当运行 dvc 启动时:

(venv) (base) tony3@Tonys-MacBook-Pro mlops % dvc init
Run Code Online (Sandbox Code Playgroud)

导入时出现如下错误:

from fsspec.asyn import fsspec_loop
ImportError: cannot import name 'fsspec_loop' from 'fsspec.asyn'
Run Code Online (Sandbox Code Playgroud)

我尝试以下操作:

  1. 转到文件位置 /venv/lib/python3.7/site-packages/fsspec/asyn.py 并检查文件 asyn.py。发现没有名为“fsspec_loop”的函数。

  2. 尝试通过以下方式将 dvc 升级到更新版本:

pip install dvc --upgrade
Run Code Online (Sandbox Code Playgroud)

但 dvc 版本保持不变(2.10.2)。

  1. 卸载 dvc,
pip uninstall dvc
Run Code Online (Sandbox Code Playgroud)

并尝试安装最新版本,

pip install dvc==2.42.0
Run Code Online (Sandbox Code Playgroud)

响应显示,与Python 3.7.13兼容的dvc最新版本是2.10.2。因此,无法安装2.42.0版本。

  1. 尝试使用brew安装dvc。但 dvc 安装在 venv 之外的位置(位于 /usr/local/bin,其中使用了更高版本的 Python)。
(venv) …
Run Code Online (Sandbox Code Playgroud)

dvc fsspec

10
推荐指数
1
解决办法
6544
查看次数

git-lfs和dvc之间的区别

两者有什么区别?我们在上一份工作中使用了git-lfs,并且在我当前的工作中开始与git一起使用dvc。它们都放置某种索引而不是文件,可以按需下载。dvc是否比前一个有所改进?

git git-lfs dvc

8
推荐指数
2
解决办法
92
查看次数

我可以大约多少钱。使用 dvc 减少磁盘体积?

我想对 ~1m+ 文档进行分类,并有一个版本控制系统用于相应模型的输入和输出。

数据随时间变化:

  • 样本量随时间增加
  • 可能会出现新功能
  • 匿名化程序可能会随着时间的推移而改变

所以基本上“一切”可能会改变:观察量、特征和值。我们有兴趣在不使用 10/100+ GB 磁盘容量的情况下使 ml 模型构建可重现,因为我们保存了输入数据的所有更新版本。目前数据的卷大小是~700mb。

我发现的最有前途的工具是:https : //github.com/iterative/dvc。目前,数据存储在数据库中,从那里加载到 R/Python 中。

题:

使用 dvc 可以(非常近似)节省多少磁盘容量?

如果可以粗略估计一下。我试图找出是否只保存了数据的“差异”。我没有通过阅读以下内容找到太多信息:https : //github.com/iterative/dvc#how-dvc-works或其他文档。

我知道这是一个非常模糊的问题。它将高度依赖于数据集。但是,我仍然有兴趣获得一个非常近似的想法。

python sql git r dvc

7
推荐指数
1
解决办法
478
查看次数

在 MinIO 存储上安装 DVC

有人在 MinIO 存储上安装 DVC 吗?

我已阅读文档,但对我来说并不是很清楚。

我应该使用哪个命令来设置具有此入口参数的 MinIO 存储:

存储网址: https: //minio.mysite.com/minio/bucket-name/ 登录名:my_login 密码:my_password

python minio dvc

7
推荐指数
1
解决办法
3601
查看次数

是否可以在不拉取文件的情况下检查 DVC 元数据文件跟踪的文件版本是否存在于远程存储中?

我的团队有一个设置,其中我们跟踪 DVC 中的数据集和模型,并有一个 GitLab 存储库用于跟踪我们的代码和 DVC 元数据文件。我们的开发 GitLab 管道中有一项工作(在每次推送合并请求时运行),其目标是检查以确保开发人员记得运行dvc push以保持 DVC 远程存储最新。目前,我们执行此操作的方法是dvc pull在 GitLab 运行程序上运行,该运行程序将失败并显示错误,告诉您未找到哪些文件(新文件或现有文件的最新版本)。

这种方法的缺点是,我们将存储在 DVC 中的全部数据加载到 GitLab 运行器上,并且我们遇到了内存不足的问题,更不用说下载所有数据的运行时间很长了。由于对象的路径和 md5 哈希存储在 DVC 元数据文件中,我认为这就是 DVC 需要能够回答“远程存储系统是否是最新的”问题的所有信息。

看起来dvc status与我所要求的类似,但比较了缓存或工作区和远程存储。换句话说,它要求文件实际存在于进行调用的任何文件系统上。

有没有什么方法可以实现我上面列出的目标(“通知开发人员他们需要运行dvc push”)而不从 DVC 中提取所有内容?

git continuous-integration gitlab dvc

7
推荐指数
1
解决办法
838
查看次数

如何通过dvc run从conda环境执行python

我有一个用python 3.6配置conda的环境,并且在那里安装了dvc,但是当我尝试用python执行dvc run时,dvc调用conda的主要安装的python版本而没有找到已安装的库.

$ conda activate py36
$ python --version
Python 3.6.6 :: Anaconda custom (64-bit)
$ dvc run python --version
Running command:
    python --version
Python 3.7.0
Saving information to 'Dvcfile'.
Run Code Online (Sandbox Code Playgroud)

python anaconda conda dvc

6
推荐指数
1
解决办法
132
查看次数

带有大量图像的机器学习数据集的版本控制?

我们开始将dvc 与git 一起使用以控制机器学习项目的版本控制。对于dvc远程存储,我们使用Google云存储。

我们的数据集是包含超过100000张小图像的OCR数据集,总大小约为200 MB。使用dvc跟踪此数据集时,我们遇到了下一个问题:

  1. 添加用于跟踪的数据集花费了很多时间。
  2. 上传速度非常慢。
  3. 下载速度非常慢。
  4. 仅更新/删除/添加数据集中的一个图像会导致dvc重新计算很多事情:哈希等。

换句话说,如果我们压缩数据集并以单个文件dvc的形式跟踪它足够快地工作,但是问题在于这种方式我们无法跟踪特定文件的更改。

目标是对具有大量文件的数据集进行版本控制,并具有下一个功能。

  1. 跟踪每个文件。
  2. 仅提交更改,而不提交整个数据集。
  3. 快速结帐/拉出

任何有关更好解决方案的建议都可以接受。

git machine-learning google-cloud-storage dvc

6
推荐指数
1
解决办法
143
查看次数

如何为不同的文件夹使用不同的遥控器?

我希望我的数据和模型存储在单独的Google Cloud存储桶中。我的想法是,我希望能够与其他人共享数据而不共享模型。

我能想到的一个想法是对数据和模型使用单独的git子模块。但这感觉很麻烦,并给最终用户带来了一些额外的要求(例如,必须这样做git submodule update)。

那么我可以不使用git子模块来做到这一点吗?

dvc

6
推荐指数
2
解决办法
83
查看次数

是否有必要从我们的 CI 管道提交 DVC 文件?

DVC 使用 git commits 来保存实验并在实验之间导航。

是否可以避免在 CI/CD 中进行自动提交(dvc repro在 CI/CD 端之后保存数据工件)。

git continuous-integration machine-learning dvc mlops

6
推荐指数
1
解决办法
696
查看次数

运行 dvc push 到 DAGsHub 时,Git bash 命令提示符挂起

我在将带有 DVC 的文件推送到 DAGsHub 时遇到问题。

工作流程:

  • 我用我的电子邮件注册了 DAGsHub。
  • 我创建了一个 repo 并将其克隆到我的计算机。
  • 我将文件添加到 repo 并使用 DVC 和 Git 跟踪它们来跟踪指针文件。
  • 运行 DVC push -r origin,它会询问我的密码。当我输入密码并按回车键时 - 没有任何反应。

它坐等,甚至禁止我使用 Ctrl+C 取消操作。我被迫手动关闭终端,打开一个新终端,结束任务管理器中的“Python”进程并删除 .dvc/tmp/lock 中的锁定文件。

dvc

5
推荐指数
1
解决办法
68
查看次数