Petastorm是由UberATG(AdvancedTechnologiesGroup)开发的开源数据访问库。这个库可以直接基于数TBParquet格式的数据集进行单机或分布式训练和深度学习模型评估。Petastorm支持基于Python的机器学习框架,如Tensorflow、Pytorch和PySpark,也可以直接用在Python代码中。
Petastorm的特性Petastorm提供了各种特性来支持自动驾驶算法的训练,包括行过滤、数据分片、shuffle、对字段子集的访问,以及对时间序列数据(n-gram)的支持。
典型数据集的结构包括:
在自动驾驶汽车测试运行期间收集的传感器数据的多个列,包括摄像头、激光定位器和雷达。
手动生成的标签,作为行的字段进行存储。
行数据按照时间顺序排序,并按照汽车的测试运行进行分组,行组大小通常在30到100范围内。
Petastorm架构Petastorm的设计目标包括:通过单数据模式定义进行数据的编码和解码。
为ML框架和纯Python代码提供可用的高数据加载带宽。
将ApacheSpark作为分布式集群计算框架来生成数据集。
与Python、ML平台无关的Petastorm核心组件的实现。
呈现给Tensorflow和PyTorch框架的原生接口。
etl包实现了生成数据集的功能。
Reader是训练和计算代码使用的主要数据加载引擎。Reader使用Python实现,不依赖任何ML框架(Tensorflow、Pytorch),并且可以通过Python代来实例化和使用。
为Tensorflow和PyTorch提供适配器。
Unischema可以被数据集生成和数据加载代码引用。
Petastorm提供了支持数据集生成和读取的组件。Unischema定义了可供两者使用的公共数据模式。
内容摘自AI前线
评论