git - 具有大量图像的机器学习数据集的版本控制?
问题描述
我们开始使用dvc 和 git 来控制机器学习项目的版本控制。对于 dvc 远程存储,我们使用谷歌云存储。
我们的数据集是 OCR 数据集,包含超过 100000 张小图像,总大小约为 200 MB。使用 dvc 跟踪这个数据集,我们遇到了下一个问题:
- 添加用于跟踪的数据集需要花费大量时间。
- 上传很慢。
- 下载非常慢。
- 在数据集中更新/删除/添加一个图像会导致 dvc 重新计算很多东西:哈希等....
从另一种方式来看,如果我们压缩我们的数据集并将其作为单个文件进行跟踪,dvc 的工作速度就足够快了。但问题是这样我们无法跟踪特定文件的更改。
目标是对具有大量文件的数据集进行版本控制,并具有下一个功能。
- 跟踪每个文件。
- 只提交更改而不是整个数据集。
- 快速结帐/拉
任何关于更好解决方案的建议都可以接受。
解决方案
从另一种方式来看,如果我们压缩我们的数据集并将其作为单个文件进行跟踪,dvc 的工作速度就足够快了。但问题是这样我们无法跟踪特定文件的更改。
zip 文件是正确的方法,结合Git LFS以存储该 zip 文件的许多修订。
您可以使用列出所有图像的文本文件来补充该存档,每个图像都带有描述对其所做的任何更改的注释:这样,由于 txt 文件将与存档的任何新修订一起提交,您仍然可以获取存档元素中所做更改的列表和性质。
推荐阅读
- android - 使用 Jacoco 测量多模块和动态功能模块 Android 项目中的测试覆盖率
- reactjs - Reactotron-react-native#react-native-flipper#react-native@^0.62.0" 不满足 "react-native@0.63.2" 的匹配
- git - Rstudio 中的 Git 未跟踪本地更改且不可推送
- excel - 如何将循环中的文件保存为启用 xlsm 宏的格式?
- go - GO GORM 外键约束未创建
- junit - 如果我想传递一个 Junit xml 中包含的元素超过了 junit 中提到的元素,我该怎么办?
- python - 对插入数据库的python数据类型感到困惑
- android - 突出显示从外部源打开的 Android 堆栈跟踪
- javascript - 如何使用 JavaScript 重命名和保存提取的页面
- itext - iText - 扫描的 PDF 上的 pageSize 指示错误