我有一个使用多个数据库的项目,为了避免在 git 中对大文件进行版本控制,我使用 DVC 在 gdrive 上管理它。
我在DVC上按照以下步骤进行操作
启动DVC(dvc init)
dvc 添加#数据集 zip#
dvc 远程添加 --default #drive_name# gdrive://#文件夹 ID#
dvc推送
对于每个数据集。但是当我尝试通过
单独上传这样的数据集时dvc pull --remote #drive_name#
它只是将所有文件下载到我的机器上,而不仅仅是我指定的文件,我已经运行了 dvc 远程列表,甚至在 gdrive 中看到文件是分开的。为什么我不能单独获取它们?
如果您需要将 DVC 项目的某些部分存储在某个远程存储中,而其他部分存储在不同的远程存储中,则有两种方法可以执行此操作(或这些方法的混合)。
remote:
文件或
.dvc
中的
dvc.yaml
字段。例如:stages:
transpose:
...
outs:
- columns.txt
remote: myremote
或:
outs:
- md5: a304afb96060aad90176268345e10355
path: data.xml
desc: Cats and dogs dataset
remote: myremote
在这种情况下,您不必使用
--remote
来表示 dvc pull
或 dvc push
- DVC 将自动知道对每个数据集或模型或一般输出使用哪个遥控器。
--remote
。但在这种情况下(这可能是您的情况的问题所在),您需要始终小心使用 dvc push
以避免错误地将所有数据推送到默认远程存储。始终这样做dvc push --remote <dataset>
。或者甚至不使用 --default
,在这种情况下甚至不指定默认遥控器。正如你所看到的,这可能有点乏味。在这两个选项中,我都会避免创建默认遥控器(除非您希望某些对象始终处于默认状态)。另外,是的,您仍然需要使用
dvc remote add ...
命令来创建所有这些命名遥控器。