DVC 使用案例(二):共享数据与模型文件

3,029 阅读1分钟

这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战

与 Git 一样,DVC 允许在分布式环境进行协作。 我们可以轻松地将所有数据文件、目录以及匹配的源代码完全一样地导入任何机器。 您需要做的就是为您的 DVC 项目设置远程存储库,并将数据推送到那里,以便其他人可以访问它。 目前 DVC 支持 Amazon S3Microsoft Azure Blob StorageGoogle DriveGoogle Cloud StorageSSHHDFS 和其他远程存储地址,并且该列表还在持续增长。 (一个完整的列表和配置说明,请参阅 dvc remote add。)

数据存储在您控制的存储中,与代码分开

例如,我们来为 DVC 项目设置 S3 远程存储,并 pushpull 它。

创建 S3 存储桶

如果您的 S3 账户中还没有可用的,请按照创建存储桶中的说明进行操作。 作为更高级的可选方案,您可以改用 aws s3 mb 命令作为替代。

设置 DVC 远程存储

要在项目中实际配置 S3 远程存储,请向 dvc remote add 命令提供用来存储数据的存储桶 URL ,如下所示:

$ dvc remote add -d myremote s3://mybucket/path

Setting 'myremote' as a default remote.

其中,-d (--default) 参数将 myremote 设置为该项目的默认远程存储。这会将 myremote 添加到您的 .dvc/config 中。 配置文件中现在有一个remote部分:

['remote "myremote"']
url = s3://mybucket/path

[core]
remote = myremote

dvc remote modify 命令提供了多种配置 S3 存储桶的参数选项。

下面,我们提交更改并推送代码到 Git 远程仓库:

$ git add .dvc/config
$ git push

上传数据和代码

使用 dvc run 或其他命令将数据添加到项目后,它将存储在本地缓存中。 使用 dvc push 命令将其上传到远程存储:

dvc push

下载代码

下面使用常规的 Git 命令从您的 Git 服务器下载代码和 DVC 元数据文件。

例如,本地没有的项目,使用git clone

$ git clone https://github.com/example/project.git
$ cd myproject

对于本地已有的项目,使用git pull

$ git pull

下载数据

为您的项目下载数据文件,请运行dvc pull

$ dvc pull

dvc pull 将从 .dvc/config 文件中配置的默认远程存储库下载缺失的数据文件。