MindSpore深度学习高阶技术
上QQ阅读APP看书,第一时间看更新

1.1.1 背景与现状

数据加载是数据处理的第一步,需要将磁盘中的文件映射到内存结构中进行后续处理。不同的深度学习任务所需的文件类型各不相同,如计算机视觉任务的数据多为图像,自然语言处理任务的数据多为文本,而语音识别任务的数据多为音频。对于图像类数据来说,又存在JPEG、PNG和BMP等不同的文件格式。此外,用于辅助训练的标注信息也多种多样。如何在数据加载时屏蔽这些读写差异,使用一种统一的形式将磁盘文件转换为AI框架能够识别的数据结构,是重点需要解决的问题。

业界一些公司诸如TensorFlow提出了一种TFRecord数据格式,基于Protocol Buffers协议将数据存储为二进制文件,提高了数据加载的效率;MXNet提出了一种RecordIO数据格式,将数据划分为多个独立的二进制块,同样起到了加速加载的效果。但它们的文件中都缺少数据的解释信息,不便于进行数据统计,并且数据不具备索引,无法提供检索的功能。

MindRecord是MindSpore提出的一种数据格式,提供了数据自画像与检索能力,格式文件包含数据的统计信息和索引,实现了数据调优信息可视,能够对标注信息快速检索分析;

提高了数据加载性能,通过数据聚合实现了流式读取,通过数据压缩减少了数据存储空间,实现了10余倍性能提升;支持全场景部署,存储的数据格式文件可以通过统一的MindDataset接口加载用于后续训练,支持在单机本地、云等不同场景部署。数据的转换与读取流程如图1.1所示。

图1.1 数据的转换与读取流程

MindRecord数据格式具备的特征如下:

(1)不同种类数据统一存储与访问,编解码更加高效,数据加载性能高;

(2)数据聚合存储,节省空间,方便移动与管理;

(3)可以灵活控制分片文件大小,实现分布式训练;

(4)提供常用数据集转换脚本,方便一键转换为MindRecord数据格式。