快速入门DVC(四):下载数据与模型文件

在上一篇文章 快速入门DVC(三):数据与模型版本管理  中,讲述了如何使用 DVC 跟踪数据和模型,以及如何将它们的版本中的元数据(.dvc)文件提交到 Git,通过 Git 来进行版本控制。

你可能会有如下的问题:

  • 我们如何在项目之外使用这些制品?
  • 我们如何下载模型来部署它?
  • 我们如何下载特定版本的模型?
  • 我们如何在不同的项目中重用数据集?

相信您已经迫不及待想知道答案了吧,那就让我们进入今天的主题:如何下载数据集与模型文件?

当您浏览 DVC 保存到远程存储的文件时,往往会遇到如下问题。比如:看到的文件路径为s3://dvc-public/remote/get-started/fb/89904ef053f04d64eafcc3d70db673,而不是原来的文件名,如model.pkldata.xml

那我们应该如何使用 DVC 查找和访问模型和数据集呢?

还记得 dvc add 生成的那些 .dvc 文件吗? 这些文件在 Git 中有它们的历史记录。Git 中包含访问和下载任何版本的数据集、文件和模型所需的所有信息,并且 DVC 的远程存储配置也保存在 Git 中。 这意味着带有 DVC 元数据文件的 Git 存储库成为入口点,可以代替直接访问文件使用。

查找文件或目录(dvc list

您可以使用 dvc list 查询托管在任何 Git 服务器上的 DVC 存储库。 例如,让我们看看 dataset-registry 存储库的 get-started/ 目录中的内容:

$ dvc list https://github.com/iterative/dataset-registry get-started

.gitignore
data.xml
data.xml.dvc

与浏览 Git 托管网站(如:GitHub)相比,此命令的好处在于该列表包含 Git 和 DVC 跟踪的文件和目录(您在 GitHub 上面是看不到 data.xml 文件的)。

下载数据集或模型(dvc get

最简单的方法是使用 dvc get 下载数据。这在 DVC 项目环境之外工作时很有用,例如,在自动的进行机器学习模型部署的任务中。

dvc get https://github.com/iterative/dataset-registry \
          use-cases/cats-dogs

如果在另一个 DVC 项目中工作时,这种方式并不是最佳策略,因为项目之间的连接丢失了(其他人不知道数据来自哪里或是否有新版本数据可用)。

导入文件或目录(dvc import

dvc import 也可以下载任何文件或目录,同时还会创建一个 .dvc 文件(这个文件保存在项目中):

dvc import https://github.com/iterative/dataset-registry \
             get-started/data.xml -o data/data.xml

这条命令类似于 dvc get + dvc add,同时,生成的 .dvc 文件包含用于跟踪源存储库中更改的元数据。 这允许您稍后使用 dvc update 从数据源引入最新的更改。

注意:

dataset registry 远程Git存储库实际上并不包含 get-started/data.xml 文件。 与 dvc get 一样,dvc 从DVC远程数据存储库下载get-started/data.xml 文件。

dvc import 创建的 .dvc 文件具有特殊的字段,例如,在 deps 下存在数据源Git库信息(repo) 和 数据源路径(path),repo下的 urlrev_lock 子字段分别用于保存依赖的来源(远程Git仓库URL)和版本(对应的Commit ID)。

 +deps:
 +- path: get-started/data.xml
 +  repo:
 +    url: https://github.com/iterative/dataset-registry
 +    rev_lock: f31f5c4cdae787b4bdeb97a717687d44667d9e62
  outs:
  - md5: a304afb96060aad90176268345e10355
    path: data.xml

使用 Python API 下载文件

除了上面的几种方式之外,我们还可以使用 DVC 的 Python API 将您的数据或模型直接集成到源代码中。这使您可以在运行时,直接从应用程序内部访问数据内容。

示例代码如下:

import dvc.api

with dvc.api.open(
    'get-started/data.xml',
    repo='https://github.com/iterative/dataset-registry'
) as fd:
    # 其中,fd是可以进行正常处理的文件描述符

总结

好了,今天讲述了如何使用dvc list查看数据,以及使用dvc getdvc importPython API来下载数据集或模型。快将其运用到我们的ML项目中来提升团队的开发效率吧。

参考文档

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃果冻不吐果冻皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值