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

296 lines
11 KiB
ReStructuredText
Raw Normal View History

mindspore.dataset
=================
2021-12-24 11:35:46 +08:00
该模块提供了加载和处理各种通用数据集的API如MNIST、CIFAR-10、CIFAR-100、VOC、COCO、ImageNet、CelebA、CLUE等
也支持加载业界标准格式的数据集包括MindRecord、TFRecord、Manifest等。此外用户还可以使用此模块定义和加载自己的数据集。
该模块还提供了在加载时进行数据采样的API如SequentialSample、RandomSampler、DistributedSampler等。
大多数数据集可以通过指定参数 `cache` 启用缓存服务,以提升整体数据处理效率。
请注意Windows平台上还不支持缓存服务因此在Windows上加载和处理数据时请勿使用。更多介绍和限制
2022-11-08 14:13:53 +08:00
请参考 `Single-Node Tensor Cache <https://www.mindspore.cn/tutorials/experts/zh-CN/master/dataset/cache.html>`_
2021-12-24 11:35:46 +08:00
在API示例中常用的模块导入方法如下
.. code-block::
import mindspore.dataset as ds
2022-09-28 19:17:29 +08:00
import mindspore.dataset.transforms as transforms
import mindspore.dataset.vision as vision
2021-12-24 11:35:46 +08:00
2022-02-08 15:25:43 +08:00
常用数据集术语说明如下:
- Dataset所有数据集的基类提供了数据处理方法来帮助预处理数据。
- SourceDataset一个抽象类表示数据集管道的来源从文件和数据库等数据源生成数据。
- MappableDataset一个抽象类表示支持随机访问的源数据集。
- Iterator用于枚举元素的数据集迭代器的基类。
2022-08-25 16:15:31 +08:00
数据处理Pipeline介绍
--------------------
.. image:: dataset_pipeline.png
如上图所示MindSpore Dataset模块使得用户很简便地定义数据预处理Pipeline并以最高效多进程/多线程)的方式处理
数据集中样本,具体的步骤参考如下:
2022-08-30 17:19:05 +08:00
- 加载数据集Dataset用户可以方便地使用 `*Dataset` 类来加载已支持的数据集,或者通过 `UDF Loader` +
`GeneratorDataset` 实现Python层自定义数据集的加载同时加载类方法可以使用多种Sampler、数据分片、数据shuffle等功能
2022-09-09 14:31:17 +08:00
- 数据集操作filter/ skip用户通过数据集对象方法 `.shuffle` / `.filter` / `.skip` / `.split` /
2022-08-30 17:19:05 +08:00
`.take` / … 来实现数据集的进一步混洗、过滤、跳过、最多获取条数等操作;
- 数据集样本增强操作map用户可以将数据增强操作
2022-11-24 16:58:30 +08:00
`vision类 <https://mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.transforms.html#视觉>`_
`nlp类 <https://mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.transforms.html#文本>`_
`audio类 <https://mindspore.cn/docs/zh-CN/master/api_python/mindspore.dataset.transforms.html#音频>`_
添加到map操作中执行数据预处理过程中可以定义多个map操作用于执行不同增强操作数据增强操作也可以是
2022-11-08 14:13:53 +08:00
用户自定义增强的 `PyFunc`
2022-08-30 17:19:05 +08:00
-batch用户在样本完成增强后使用 `.batch` 操作将多个样本组织成batch也可以通过batch的参数 `per_batch_map`
2022-08-25 16:15:31 +08:00
来自定义batch逻辑
2022-08-30 17:19:05 +08:00
- 迭代器create_dict_iterator最后用户通过数据集对象方法 `create_dict_iterator` 来创建迭代器,
2022-08-25 16:15:31 +08:00
可以将预处理完成的数据循环输出。
2022-08-30 17:19:05 +08:00
数据处理Pipeline示例如下完整示例请参考
2022-11-08 14:13:53 +08:00
`datasets_example.py <https://gitee.com/mindspore/mindspore/tree/master/docs/api/api_python/datasets_example.py>`_
2022-08-25 16:15:31 +08:00
.. code-block:: python
import numpy as np
import mindspore as ms
import mindspore.dataset as ds
import mindspore.dataset.vision as vision
import mindspore.dataset.transforms as transforms
# 构造图像和标签
data1 = np.array(np.random.sample(size=(300, 300, 3)) * 255, dtype=np.uint8)
data2 = np.array(np.random.sample(size=(300, 300, 3)) * 255, dtype=np.uint8)
data3 = np.array(np.random.sample(size=(300, 300, 3)) * 255, dtype=np.uint8)
data4 = np.array(np.random.sample(size=(300, 300, 3)) * 255, dtype=np.uint8)
label = [1, 2, 3, 4]
# 加载数据集
dataset = ds.NumpySlicesDataset(([data1, data2, data3, data4], label), ["data", "label"])
# 对data数据增强
dataset = dataset.map(operations=vision.RandomCrop(size=(250, 250)), input_columns="data")
dataset = dataset.map(operations=vision.Resize(size=(224, 224)), input_columns="data")
dataset = dataset.map(operations=vision.Normalize(mean=[0.485 * 255, 0.456 * 255, 0.406 * 255],
std=[0.229 * 255, 0.224 * 255, 0.225 * 255]),
input_columns="data")
dataset = dataset.map(operations=vision.HWC2CHW(), input_columns="data")
# 对label变换类型
dataset = dataset.map(operations=transforms.TypeCast(ms.int32), input_columns="label")
# batch操作
dataset = dataset.batch(batch_size=2)
# 创建迭代器
epochs = 2
ds_iter = dataset.create_dict_iterator(output_numpy=True, num_epochs=epochs)
for _ in range(epochs):
for item in ds_iter:
print("item: {}".format(item), flush=True)
2022-02-11 09:07:57 +08:00
视觉
-----
.. mscnautosummary::
:toctree: dataset
2022-02-11 17:34:24 +08:00
:nosignatures:
:template: classtemplate_inherited.rst
2022-02-11 17:34:24 +08:00
mindspore.dataset.Caltech101Dataset
mindspore.dataset.Caltech256Dataset
mindspore.dataset.CelebADataset
2022-02-11 15:23:20 +08:00
mindspore.dataset.Cifar10Dataset
mindspore.dataset.Cifar100Dataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.CityscapesDataset
mindspore.dataset.CocoDataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.DIV2KDataset
mindspore.dataset.EMnistDataset
mindspore.dataset.FakeImageDataset
mindspore.dataset.FashionMnistDataset
mindspore.dataset.FlickrDataset
mindspore.dataset.Flowers102Dataset
mindspore.dataset.Food101Dataset
mindspore.dataset.ImageFolderDataset
2023-03-06 20:18:49 +08:00
mindspore.dataset.KITTIDataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.KMnistDataset
2023-03-06 20:18:49 +08:00
mindspore.dataset.LFWDataset
mindspore.dataset.LSUNDataset
2022-02-11 15:23:20 +08:00
mindspore.dataset.ManifestDataset
mindspore.dataset.MnistDataset
2023-03-06 20:18:49 +08:00
mindspore.dataset.OmniglotDataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.PhotoTourDataset
mindspore.dataset.Places365Dataset
mindspore.dataset.QMnistDataset
mindspore.dataset.RenderedSST2Dataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.SBDataset
mindspore.dataset.SBUDataset
mindspore.dataset.SemeionDataset
mindspore.dataset.STL10Dataset
mindspore.dataset.SUN397Dataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.SVHNDataset
mindspore.dataset.USPSDataset
mindspore.dataset.VOCDataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.WIDERFaceDataset
2022-02-11 09:07:57 +08:00
文本
----
.. mscnautosummary::
:toctree: dataset
2022-02-11 17:34:24 +08:00
:nosignatures:
:template: classtemplate_inherited.rst
2022-02-11 17:34:24 +08:00
mindspore.dataset.AGNewsDataset
mindspore.dataset.AmazonReviewDataset
mindspore.dataset.CLUEDataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.CoNLL2000Dataset
mindspore.dataset.DBpediaDataset
mindspore.dataset.EnWik9Dataset
mindspore.dataset.IMDBDataset
mindspore.dataset.IWSLT2016Dataset
mindspore.dataset.IWSLT2017Dataset
2023-03-06 20:18:49 +08:00
mindspore.dataset.Multi30kDataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.PennTreebankDataset
mindspore.dataset.SogouNewsDataset
2023-03-06 20:18:49 +08:00
mindspore.dataset.SQuADDataset
mindspore.dataset.SST2Dataset
2022-02-11 15:23:20 +08:00
mindspore.dataset.TextFileDataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.UDPOSDataset
mindspore.dataset.WikiTextDataset
mindspore.dataset.YahooAnswersDataset
mindspore.dataset.YelpReviewDataset
音频
------
.. mscnautosummary::
2022-02-11 17:34:24 +08:00
:toctree: dataset
:nosignatures:
:template: classtemplate_inherited.rst
2023-03-06 20:18:49 +08:00
mindspore.dataset.CMUArcticDataset
mindspore.dataset.GTZANDataset
mindspore.dataset.LibriTTSDataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.LJSpeechDataset
mindspore.dataset.SpeechCommandsDataset
mindspore.dataset.TedliumDataset
mindspore.dataset.YesNoDataset
2022-02-11 15:23:20 +08:00
标准格式
--------
.. mscnautosummary::
:toctree: dataset
2022-02-11 17:34:24 +08:00
:nosignatures:
:template: classtemplate_inherited.rst
2022-02-11 15:23:20 +08:00
mindspore.dataset.CSVDataset
mindspore.dataset.MindDataset
2022-03-25 15:34:09 +08:00
mindspore.dataset.OBSMindDataset
2022-02-11 15:23:20 +08:00
mindspore.dataset.TFRecordDataset
2022-02-11 09:07:57 +08:00
用户自定义
----------
.. mscnautosummary::
:toctree: dataset
2022-02-11 17:34:24 +08:00
:nosignatures:
:template: classtemplate_inherited.rst
mindspore.dataset.GeneratorDataset
mindspore.dataset.NumpySlicesDataset
mindspore.dataset.PaddedDataset
2022-02-11 17:34:24 +08:00
mindspore.dataset.RandomDataset
2022-02-11 15:23:20 +08:00
---
.. mscnautosummary::
2022-02-11 15:23:20 +08:00
:toctree: dataset
2022-03-25 15:34:09 +08:00
2022-07-16 10:58:06 +08:00
mindspore.dataset.ArgoverseDataset
mindspore.dataset.Graph
2022-02-11 15:23:20 +08:00
mindspore.dataset.GraphData
2022-07-16 10:58:06 +08:00
mindspore.dataset.InMemoryGraphDataset
2022-02-11 15:23:20 +08:00
2022-02-11 09:07:57 +08:00
采样器
-------
.. mscnautosummary::
:toctree: dataset
mindspore.dataset.DistributedSampler
mindspore.dataset.PKSampler
mindspore.dataset.RandomSampler
mindspore.dataset.SequentialSampler
mindspore.dataset.SubsetRandomSampler
mindspore.dataset.SubsetSampler
mindspore.dataset.WeightedRandomSampler
2022-11-22 13:52:02 +08:00
配置
-------
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
2022-02-11 09:07:57 +08:00
其他
-----
.. mscnautosummary::
:toctree: dataset
2022-02-11 17:34:24 +08:00
:nosignatures:
:template: classtemplate_inherited.rst
2022-02-11 17:34:24 +08:00
mindspore.dataset.BatchInfo
mindspore.dataset.DatasetCache
2022-02-11 15:23:20 +08:00
mindspore.dataset.DSCallback
2022-02-11 17:34:24 +08:00
mindspore.dataset.SamplingStrategy
mindspore.dataset.Schema
2022-02-11 17:34:24 +08:00
mindspore.dataset.Shuffle
mindspore.dataset.WaitedDSCallback
2022-02-11 17:34:24 +08:00
mindspore.dataset.OutputFormat
mindspore.dataset.compare
mindspore.dataset.deserialize
mindspore.dataset.serialize
mindspore.dataset.show
2022-03-29 13:19:46 +08:00
mindspore.dataset.sync_wait_for_dataset
mindspore.dataset.utils.imshow_det_bbox