加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

还在用Github管理机器学习项目?你早该了解这些更专业的新工具!

发布时间:2019-07-03 00:30:24 所属栏目:建站 来源:大数据文摘
导读:副标题#e# 大数据文摘出品 编译:钱天培、胡笳 太复杂了!机器学习(ML)项目实在太复杂了! 听到这种抱怨,熟悉软件开发的小伙伴们往往是嗤之以鼻的。 机器学习,不过是和数据和软件打交道。那就应该是是运行代码、迭代算法的简单问题呀?一段时间后,我们就能

我们将特别讨论两个工具,MLFlow和DVC。当然,还有很多其他软件可以取得类似的效果。

还在用Github管理机器学习项目?你早该了解这些更专业的新工具!

机器学习项目中的数据与模型存储

我们的讨论可以归结为:

  • 跟踪每一轮训练机器学习模型使用的数据文件
  • 跟踪训练后的模型和评估指标
  • 通过任何形式的文件共享系统与同事共享数据文件的简单方法

总的来说,我们需要一个数据跟踪系统来透明地审计、或者复现结果。我们也需要一个数据共享系统来将项目团队扩展到多个同事。

就如我们先前讨论的一样,使用Git或其他SCM(源代码管理系统)来存储机器学习项目中使用的数据文件是不切实际的。

一些库提供了API来简化远程存储上的文件处理,并管理向远程存储上传或获取文件。虽然这有利于远程数据集的共享访问,但却对我们面对的问题没有帮助。

首先,它是嵌入式配置的一种形式,因为文件名被嵌入到软件中。在源代码中嵌入配置设置的任何程序在其他情况下都更难以被重新使用。其次,它没有将脚本版本和其使用的数据文件关联起来。

下面,然后我们看一下MLFlow的示例代码:

  1. mlflow.pytorch.load_model("runs:/<mlflow_run_id>/run-relative/path/to/model") 

这支持多种文件访问“方案”,包括S3这样的云存储系统。这里的示例从“run”区域加载一个文件,在本例中是一个经过训练的模型。每次执行一段代码时,MLFlow都会生成一个“run”。你需要配置一个存储“run”数据的位置,并且显然会为每个用于索引到数据存储区域的运行生成一个“run ID”。

这种方式有效地将数据与对应SCM源码管理库中的代码和配置文件的commit提交版本关联起来。此外,MLFLow API有多种实现语言,并不局限于 Python语言。

DVC采用的则是另一种方式。对比上面将文件API集成到ML脚本中,你的脚本可以简单地使用普通文件系统的API实现输入和输出文件。例如:

  1. model=torch.load(‘path/to/model.pkl’) 

通过上述代码,路径名称将通过这条命令传入。你无需特别修改代码,因为DVC可以通过外部传递训练代码或验证模型代码需要的值。

DVC让这一切变得透明——数据文件版本与代码的Git版本是相匹配的。

通过下述命令,你可将文件或文件夹加入DVC的版本管理:

  1. $ dvc add path/to/model.pkl 

数据存储在你的工作目录中。浏览各项运行的结果也很简单,只需要浏览你的Git历史即可。查看特定结果就像git checkout一样简单,DVC将被调用,并确保将正确的数据文件连接到workspace。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读