Uber开源深度学习分布训练库Petastorm
极客时间编辑部
讲述:丁婵大小:1.34M时长:02:56
近年来,深度学习在解决模式识别问题方面发挥了关键作用。Uber ATG(Advanced Technologies Group)的研究人员和工程师正在积极推动跨多个问题领域的自动驾驶技术,如感知、预测和规划。为了支持这些工作,他们致力于开发数据集存储解决方案,让研究人员更容易获得数据,从而可以专注于模型实验。
本文将介绍 Petastorm,这是一个由 Uber ATG 开发的开源数据访问库。这个库可以直接基于数 TB Parquet 格式的数据集,进行单机或分布式训练和深度学习模型评估。它支持基于 Python 的机器学习框架,如 Tensorflow、Pytorch 和 PySpark,也可以直接用在 Python 代码中。
据介绍,Petastorm 提供了各种特性来支持自动驾驶算法的训练,包括行过滤、数据分片、shuffle、对字段子集的访问,以及对时间序列数据(n-gram)的支持。具体的特性包括:
并行执行策略。Petastorm 提供了两种并行化数据加载和解码操作的策略,一种基于线程池,另一种基于进程池。策略的选择取决于所读取的数据类型。
n-gram。有些模型需要时间上下文,以便更好地解释环境或预测环境中参与者的未来行为。如果底层的数据是按时间排列,Petastorm 就可以提供这样的时间上下文。
shuffle。连续样本之间的高相关性,会降低训练算法的性能。为了减少相关性,Petastorm 提供了 shuffle 的功能。
行谓词(过滤器)。对于在多个实验室中重用的数据集实例,能够有效地选择行子集是非常重要的。Petastorm 支持行谓词,利用了 Parquet 存储分区,只加载符合条件的列。
行组索引。Petastorm 支持存储一个键与一组行组的映射,这种映射有助于快速查找符合特定条件的行组,在使用“行谓词”的地方,需要进行额外的过滤。
为分布式训练进行分片。在分布式训练环境中,每个进程通常负责训练数据的一个子集,一个进程的数据子集与其他进程的数据子集正交。Petastorm 支持将数据集的读时分片转换为正交的样本集。
本地缓存。Petastorm 支持在本地存储中缓存数据,在第一个时间段,从远程存储读取一组样本,并保存到本地缓存中,在随后的时间段,将从本地缓存中读取所有数据。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论