mindspore/docs/api/api_python/mindspore.dataset.loading.rst

274 lines
12 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

mindspore.dataset
==================
MindSpore的核心数据加载模块是Dataset是一种基于Pipeline设计的 `数据引擎 <https://www.mindspore.cn/docs/zh-CN/master/features/data_engine.html>`_
该模块提供了以下几种数据加载方式帮助用户加载数据集到MindSpore中。
- 自定义数据集加载允许用户通过Python定义 `可随机访问(Map-style)数据集 <https://www.mindspore.cn/tutorials/zh-CN/master/beginner/dataset.html#可随机访问数据集>`_
`可迭代(Iterable-style)数据集 <https://www.mindspore.cn/tutorials/zh-CN/master/beginner/dataset.html#可迭代数据集>`_ 自定义数据读取、处理逻辑。
- 标准格式数据集加载:支持加载业界标准数据格式的数据集文件,包括 `MindRecord <https://www.mindspore.cn/tutorials/zh-CN/master/dataset/record.html>`_`TFRecord <https://tensorflow.google.cn/tutorials/load_data/tfrecord.md?hl=zh-cn>`_ 等。
- 开源数据集加载:支持部分 `开源数据集 <#开源数据集加载>`_ 的解析读取如MNIST、CIFAR-10、CLUE、LJSpeech等。
此外该模块也提供了对数据进行采样、增强变换、批处理等功能以及随机种子、并行数等基础配置与数据集加载API配合使用。
- 数据采样器:提供了多种常见 `采样器 <#采样器-1>`_ 如RandomSampler、DistributedSampler等。
- 数据增强变换:提供了多种 `数据集操作 <https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/mindspore.dataset.GeneratorDataset.html#预处理操作>`_ ,以此对数据进行增强,批处理等。
- 基础配置:提供了 `Pipeline配置 <#配置>`_ 用于随机种子设置、并行数设置、数据恢复模式等功能。
常用数据集术语说明如下:
- Dataset所有数据集的基类提供了数据处理方法来帮助预处理数据。
- SourceDataset一个抽象类表示数据集管道的来源从文件和数据库等数据源生成数据。
- MappableDataset一个抽象类表示支持随机访问的源数据集。
- Iterator用于枚举元素的数据集迭代器的基类。
数据处理Pipeline介绍
--------------------
.. image:: dataset_pipeline.png
如上图所示MindSpore Dataset模块使得用户很简便地定义数据预处理Pipeline并以最高效多进程/多线程)的方式处理
数据集中样本,具体的步骤参考如下:
- 加载数据集Dataset用户可以方便地使用 Dataset类 ( `标准格式数据集 <https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.loading.html#标准格式数据集加载>`_
`vision数据集 <https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.loading.html#视觉数据集>`_
`nlp数据集 <https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.loading.html#文本数据集>`_
`audio数据集 <https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.loading.html#音频数据集>`_ ) 来加载已支持的数据集,
或者使用 `自定义数据集加载 <https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.loading.html#自定义数据集加载-1>`_ 通过Python逻辑自定义数据集行为
- 数据集操作filter/ skip用户通过数据集对象方法 `.shuffle <https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/dataset_method/operation/mindspore.dataset.Dataset.shuffle.html#mindspore.dataset.Dataset.shuffle>`_ /
`.filter <https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/dataset_method/operation/mindspore.dataset.Dataset.filter.html#mindspore.dataset.Dataset.filter>`_ /
`.skip <https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/dataset_method/operation/mindspore.dataset.Dataset.skip.html#mindspore.dataset.Dataset.skip>`_ /
`.split <https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/dataset_method/operation/mindspore.dataset.Dataset.split.html#mindspore.dataset.Dataset.split>`_ /
`.take <https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/dataset_method/operation/mindspore.dataset.Dataset.take.html#mindspore.dataset.Dataset.take>`_ / … 来实现数据集的进一步混洗、过滤、跳过、最多获取条数等操作;
- 数据集样本变换操作map用户可以将数据变换操作 `vision数据变换 <https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.transforms.html#视觉>`_
`nlp数据变换 <https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.transforms.html#文本>`_
`audio数据变换 <https://www.mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.transforms.html#音频>`_
添加到 `.map <https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/dataset_method/operation/mindspore.dataset.Dataset.map.html>`_ 操作中执行,
数据预处理过程中可以定义多个map操作用于执行不同变换操作数据变换操作也可以支持传入用户自定义Python函数
-batch用户在样本完成变换后使用 `.batch <https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/dataset_method/batch/mindspore.dataset.Dataset.batch.html#mindspore.dataset.Dataset.batch>`_
操作将多个样本组织成batch也可以通过batch的参数 `per_batch_map` 来自定义batch逻辑
- 迭代器iterator最后用户通过数据集对象方法 `.create_dict_iterator <https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/dataset_method/iterator/mindspore.dataset.Dataset.create_dict_iterator.html>`_ /
`.create_tuple_iterator <https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/dataset_method/iterator/mindspore.dataset.Dataset.create_tuple_iterator.html>`_ 来创建迭代器将预处理完成的数据循环输出。
数据处理Pipeline快速上手
-------------------------
如何快速使用Dataset Pipeline可以将 `使用数据Pipeline加载 & 处理数据集 <https://www.mindspore.cn/docs/zh-CN/master/api_python/samples/dataset/dataset_gallery.html>`_ 下载到本地,按照顺序执行并观察输出结果。
自定义数据集加载
-----------------
.. mscnautosummary::
:toctree: dataset
:nosignatures:
:template: classtemplate_inherited.rst
mindspore.dataset.GeneratorDataset
标准格式数据集加载
-------------------
.. mscnautosummary::
:toctree: dataset
:nosignatures:
:template: classtemplate_inherited.rst
mindspore.dataset.MindDataset
mindspore.dataset.OBSMindDataset
mindspore.dataset.TFRecordDataset
开源数据集加载
---------------
视觉数据集
^^^^^^^^^^^
.. mscnautosummary::
:toctree: dataset
:nosignatures:
:template: classtemplate_inherited.rst
mindspore.dataset.Caltech101Dataset
mindspore.dataset.Caltech256Dataset
mindspore.dataset.CelebADataset
mindspore.dataset.Cifar10Dataset
mindspore.dataset.Cifar100Dataset
mindspore.dataset.CityscapesDataset
mindspore.dataset.CocoDataset
mindspore.dataset.DIV2KDataset
mindspore.dataset.EMnistDataset
mindspore.dataset.FakeImageDataset
mindspore.dataset.FashionMnistDataset
mindspore.dataset.FlickrDataset
mindspore.dataset.Flowers102Dataset
mindspore.dataset.Food101Dataset
mindspore.dataset.ImageFolderDataset
mindspore.dataset.KITTIDataset
mindspore.dataset.KMnistDataset
mindspore.dataset.LFWDataset
mindspore.dataset.LSUNDataset
mindspore.dataset.ManifestDataset
mindspore.dataset.MnistDataset
mindspore.dataset.OmniglotDataset
mindspore.dataset.PhotoTourDataset
mindspore.dataset.Places365Dataset
mindspore.dataset.QMnistDataset
mindspore.dataset.RenderedSST2Dataset
mindspore.dataset.SBDataset
mindspore.dataset.SBUDataset
mindspore.dataset.SemeionDataset
mindspore.dataset.STL10Dataset
mindspore.dataset.SUN397Dataset
mindspore.dataset.SVHNDataset
mindspore.dataset.USPSDataset
mindspore.dataset.VOCDataset
mindspore.dataset.WIDERFaceDataset
文本数据集
^^^^^^^^^^^
.. mscnautosummary::
:toctree: dataset
:nosignatures:
:template: classtemplate_inherited.rst
mindspore.dataset.AGNewsDataset
mindspore.dataset.AmazonReviewDataset
mindspore.dataset.CLUEDataset
mindspore.dataset.CSVDataset
mindspore.dataset.CoNLL2000Dataset
mindspore.dataset.DBpediaDataset
mindspore.dataset.EnWik9Dataset
mindspore.dataset.IMDBDataset
mindspore.dataset.IWSLT2016Dataset
mindspore.dataset.IWSLT2017Dataset
mindspore.dataset.Multi30kDataset
mindspore.dataset.PennTreebankDataset
mindspore.dataset.SogouNewsDataset
mindspore.dataset.SQuADDataset
mindspore.dataset.SST2Dataset
mindspore.dataset.TextFileDataset
mindspore.dataset.UDPOSDataset
mindspore.dataset.WikiTextDataset
mindspore.dataset.YahooAnswersDataset
mindspore.dataset.YelpReviewDataset
音频数据集
^^^^^^^^^^^
.. mscnautosummary::
:toctree: dataset
:nosignatures:
:template: classtemplate_inherited.rst
mindspore.dataset.CMUArcticDataset
mindspore.dataset.GTZANDataset
mindspore.dataset.LibriTTSDataset
mindspore.dataset.LJSpeechDataset
mindspore.dataset.SpeechCommandsDataset
mindspore.dataset.TedliumDataset
mindspore.dataset.YesNoDataset
其他数据集
----------
.. mscnautosummary::
:toctree: dataset
:nosignatures:
:template: classtemplate_inherited.rst
mindspore.dataset.NumpySlicesDataset
mindspore.dataset.PaddedDataset
mindspore.dataset.RandomDataset
采样器
-------
.. mscnautosummary::
:toctree: dataset
mindspore.dataset.DistributedSampler
mindspore.dataset.PKSampler
mindspore.dataset.RandomSampler
mindspore.dataset.SequentialSampler
mindspore.dataset.SubsetRandomSampler
mindspore.dataset.SubsetSampler
mindspore.dataset.WeightedRandomSampler
配置
-------
config模块能够设置或获取数据处理管道的全局配置参数。
.. mscnautosummary::
:toctree: dataset
mindspore.dataset.config.set_sending_batches
mindspore.dataset.config.load
mindspore.dataset.config.set_seed
mindspore.dataset.config.get_seed
mindspore.dataset.config.set_prefetch_size
mindspore.dataset.config.get_prefetch_size
mindspore.dataset.config.set_num_parallel_workers
mindspore.dataset.config.get_num_parallel_workers
mindspore.dataset.config.set_numa_enable
mindspore.dataset.config.get_numa_enable
mindspore.dataset.config.set_monitor_sampling_interval
mindspore.dataset.config.get_monitor_sampling_interval
mindspore.dataset.config.set_callback_timeout
mindspore.dataset.config.get_callback_timeout
mindspore.dataset.config.set_auto_num_workers
mindspore.dataset.config.get_auto_num_workers
mindspore.dataset.config.set_enable_shared_mem
mindspore.dataset.config.get_enable_shared_mem
mindspore.dataset.config.set_enable_autotune
mindspore.dataset.config.get_enable_autotune
mindspore.dataset.config.set_autotune_interval
mindspore.dataset.config.get_autotune_interval
mindspore.dataset.config.set_auto_offload
mindspore.dataset.config.get_auto_offload
mindspore.dataset.config.set_enable_watchdog
mindspore.dataset.config.get_enable_watchdog
mindspore.dataset.config.set_fast_recovery
mindspore.dataset.config.get_fast_recovery
mindspore.dataset.config.set_multiprocessing_timeout_interval
mindspore.dataset.config.get_multiprocessing_timeout_interval
mindspore.dataset.config.set_error_samples_mode
mindspore.dataset.config.get_error_samples_mode
mindspore.dataset.config.ErrorSamplesMode
mindspore.dataset.config.set_debug_mode
mindspore.dataset.config.get_debug_mode
mindspore.dataset.config.set_multiprocessing_start_method
mindspore.dataset.config.get_multiprocessing_start_method
mindspore.dataset.config.set_video_backend
mindspore.dataset.config.get_video_backend
工具
-----
.. mscnautosummary::
:toctree: dataset
:nosignatures:
:template: classtemplate_inherited.rst
mindspore.dataset.BatchInfo
mindspore.dataset.DatasetCache
mindspore.dataset.DSCallback
mindspore.dataset.Schema
mindspore.dataset.Shuffle
mindspore.dataset.WaitedDSCallback
mindspore.dataset.compare
mindspore.dataset.debug.DebugHook
mindspore.dataset.deserialize
mindspore.dataset.serialize
mindspore.dataset.show
mindspore.dataset.sync_wait_for_dataset
mindspore.dataset.utils.imshow_det_bbox
mindspore.dataset.utils.LineReader