首页 > 解决方案 > 具有大量图像的机器学习数据集的版本控制?

问题描述

我们开始使用dvc 和 git 来控制机器学习项目的版本控制。对于 dvc 远程存储,我们使用谷歌云存储。

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

  1. 添加用于跟踪的数据集需要花费大量时间。
  2. 上传很慢。
  3. 下载非常慢。
  4. 在数据集中更新/删除/添加一个图像会导致 dvc 重新计算很多东西:哈希等....

从另一种方式来看,如果我们压缩我们的数据集并将其作为单个文件进行跟踪,dvc 的工作速度就足够快了。但问题是这样我们无法跟踪特定文件的更改。

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

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

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

标签: gitmachine-learninggoogle-cloud-storagedvc

解决方案


从另一种方式来看,如果我们压缩我们的数据集并将其作为单个文件进行跟踪,dvc 的工作速度就足够快了。但问题是这样我们无法跟踪特定文件的更改。

zip 文件是正确的方法,结合Git LFS以存储该 zip 文件的许多修订。

您可以使用列出所有图像的文本文件来补充该存档,每个图像都带有描述对其所做的任何更改的注释:这样,由于 txt 文件将与存档的任何新修订一起提交,您仍然可以获取存档元素中所做更改的列表和性质。


推荐阅读