11

我希望我的数据和模型存储在单独的 Google Cloud 存储桶中。这个想法是我希望能够在不共享模型的情况下与他人共享数据。

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

那么我可以在不使用 git 子模块的情况下做到这一点吗?

4

2 回答 2

13

您可以先添加要建立的不同DVC 遥控器(假设您调用它们datamodels,每个都指向不同的GC 存储桶)。但不要将任何远程设置为项目的默认值;这样,没有(or ) 选项dvc push将无法工作。-r--remote

然后,您需要将每个目录或文件单独推送到适当的远程,例如dvc push data/ -r datadvc push model.dat -r models.

请注意,在 DVC 存储库中也存在配置此功能的功能请求。请参阅指定可以推送到远程的文件类型

于 2019-11-20T16:31:15.363 回答
5

是的,您可以在没有 Git 子模块的情况下使用多个遥控器。

有一个单独的命令用于使用来自外部存储库的数据工件:dvc import http://your-repo datadir该命令将数据带到您的存储库并保持与原始存储库的连接(以避免不同远程中的数据重复)。

在您的情况下,一个存储库可用于具有自己的远程数据的数据集。第二个 repo 可能用于导入数据集项目的代码和模型,而它的所有模型和输出都转到另一个数据远程。

使用importdvc push -r myremote不需要。默认dvc push在适当的远程同步数据。

已编辑:只需将一个 Git 存储库用于数据集及其 data-remote/S3 文件夹,然后从另一个存储库导入它,其中包含代码、模型和另一个 data-remote/S3 文件夹。

于 2019-11-24T17:21:01.027 回答