本章节学习数据集,学习对不同的数据集加载方式、数据集常见操作和自定义数据集方法。

MindSpore提供基于Pipeline的数据引擎,通过数据集(Dataset)和数据变换(Transforms)实现高效的数据预处理。其中Dataset是Pipeline的起始,用于加载原始数据。mindspore.dataset提供了内置的文本、图像、音频等数据集加载接口,并提供了自定义数据集加载接口。MindSpore的领域开发库也提供了大量的预加载数据集,可以使用API一键下载使用。

  • 数据集迭代

数据集迭代需要用create_tuple_iterator或create_dict_iterator接口创建数据迭代器,迭代访问数据。

  • 数据集常用操作
    1、shuffle操作
    操作时,mindspore.dataset提供的数据集在加载时可配置shuffle=True
    2、map操作
    数据预处理的关键操作,可以针对数据集指定列(column)添加数据变换(Transforms),将数据变换应用于该列数据的每个元素,并返回包含变换后元素的新数据集。
    3、batch操作
    将数据集打包为固定大小的batch是在有限硬件资源下使用梯度下降进行模型优化的折中方法,可以保证梯度下降的随机性和优化计算量。

  • 自定义数据集
    1、可随机访问数据集,包含了__getitem__和__len__方法,实现索引/键直接访问对应位置的数据样本
    2、可迭代数据集,包含了__iter__和__next__方法,可以通过迭代的方式逐步获取数据样本。这种类型的数据集特别适用于随机访问成本太高或者不可行的情况。
    3、生成器,直接依赖Python的生成器类型generator返回数据,直至生成器抛出StopIteration异常。

此章节学习到此结束,感谢昇思平台。

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐