如何仅从其中一个 DVC 存储库下载数据?

问题描述 投票:0回答:1

我有一个使用多个数据库的项目,为了避免在 git 中对大文件进行版本控制,我使用 DVC 在 gdrive 上管理它。

我在DVC上按照以下步骤进行操作

启动DVC(dvc init)

dvc 添加#数据集 zip#

dvc 远程添加 --default #drive_name# gdrive://#文件夹 ID#

dvc推送

对于每个数据集。但是当我尝试通过

单独上传这样的数据集时

dvc pull --remote #drive_name#

它只是将所有文件下载到我的机器上,而不仅仅是我指定的文件,我已经运行了 dvc 远程列表,甚至在 gdrive 中看到文件是分开的。为什么我不能单独获取它们?

github version-control dataset mlops dvc
1个回答
0
投票

如果您需要将 DVC 项目的某些部分存储在某个远程存储中,而其他部分存储在不同的远程存储中,则有两种方法可以执行此操作(或这些方法的混合)。

  1. (我会推荐这个)。使用
    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 将自动知道对每个数据集或模型或一般输出使用哪个遥控器。

  1. 你确实可以使用
    --remote
    。但在这种情况下(这可能是您的情况的问题所在),您需要始终小心使用
    dvc push
    以避免错误地将所有数据推送到默认远程存储。始终这样做
    dvc push --remote <dataset>
    。或者甚至不使用
    --default
    ,在这种情况下甚至不指定默认遥控器。正如你所看到的,这可能有点乏味。

在这两个选项中,我都会避免创建默认遥控器(除非您希望某些对象始终处于默认状态)。另外,是的,您仍然需要使用

dvc remote add ...
命令来创建所有这些命名遥控器。

© www.soinside.com 2019 - 2024. All rights reserved.