!28389 Update chinese API doc

Merge pull request !28389 from luoyang/code_docs_chinese
This commit is contained in:
i-robot 2021-12-31 06:57:43 +00:00 committed by Gitee
commit 6f9541d02c
17 changed files with 389 additions and 358 deletions

View File

@ -3,60 +3,64 @@ mindspore.dataset.CLUEDataset
.. py:class:: mindspore.dataset.CLUEDataset(dataset_files, task='AFQMC', usage='train', num_samples=None, num_parallel_workers=None, shuffle=<Shuffle.GLOBAL: 'global'>, num_shards=None, shard_id=None, cache=None)
读取和解析CLUE数据集的源数据集文件。目前支持的CLUE分类任务包括 `AFQMC``Tnews``IFLYTEK``CMNLI``WSC``CSL`
读取和解析CLUE数据集的源文件构建数据集。
根据给定的 `task` 配置,数据集会生成不同的输出列:
- task = `AFQMC`
- usage = `train`,输出列: `[sentence1, dtype=string]`, `[sentence2, dtype=string]`, `[label, dtype=string]`.
- usage = `test`,输出列: `[id, dtype=uint8]`, `[sentence1, dtype=string]`, `[sentence2, dtype=string]`.
- usage = `eval`,输出列: `[sentence1, dtype=string]`, `[sentence2, dtype=string]`, `[label, dtype=string]`.
- task = `TNEWS`
- usage = `train`,输出列: `[label, dtype=string]`, `[label_des, dtype=string]`, `[sentence, dtype=string]`, `[keywords, dtype=string]`.
- usage = `test`,输出列: `[label, dtype=string]`, `[label_des, dtype=string]`, `[sentence, dtype=string]`, `[keywords, dtype=string]`.
- usage = `eval`,输出列: `[label, dtype=string]`, `[label_des, dtype=string]`, `[sentence, dtype=string]`, `[keywords, dtype=string]`.
- task = `IFLYTEK`
- usage = `train`,输出列: `[label, dtype=string]`, `[label_des, dtype=string]`, `[sentence, dtype=string]`.
- usage = `test`,输出列: `[id, dtype=string]`, `[sentence, dtype=string]`.
- usage = `eval`,输出列: `[label, dtype=string]`, `[label_des, dtype=string]`, `[sentence, dtype=string]`.
- task = `CMNLI`
- usage = `train`,输出列: `[sentence1, dtype=string]`, `[sentence2, dtype=string]`, `[label, dtype=string]`.
- usage = `test`,输出列: `[id, dtype=uint8]`, `[sentence1, dtype=string]`, `[sentence2, dtype=string]`.
- usage = `eval`,输出列: `[sentence1, dtype=string]`, `[sentence2, dtype=string]`, `[label, dtype=string]`.
- task = `WSC`
- usage = `train`,输出列: `[span1_index, dtype=uint8]`, `[span2_index, dtype=uint8]`, `[span1_text, dtype=string]`, `[span2_text, dtype=string]`, `[idx, dtype=uint8]`, `[text, dtype=string]`, `[label, dtype=string]`.
- usage = `test`,输出列: `[span1_index, dtype=uint8]`, `[span2_index, dtype=uint8]`, `[span1_text, dtype=string]`, `[span2_text, dtype=string]`, `[idx, dtype=uint8]`, `[text, dtype=string]`.
- usage = `eval`,输出列: `[span1_index, dtype=uint8]`, `[span2_index, dtype=uint8]`, `[span1_text, dtype=string]`, `[span2_text, dtype=string]`, `[idx, dtype=uint8]`, `[text, dtype=string]`, `[label, dtype=string]`.
- task = `CSL`
- usage = `train`,输出列: `[id, dtype=uint8]`, `[abst, dtype=string]`, `[keyword, dtype=string]`, `[label, dtype=string]`.
- usage = `test`,输出列: `[id, dtype=uint8]`, `[abst, dtype=string]`, `[keyword, dtype=string]`.
- usage = `eval`,输出列: `[id, dtype=uint8]`, `[abst, dtype=string]`, `[keyword, dtype=string]`, `[label, dtype=string]`.
目前支持的CLUE分类任务包括'AFQMC'、'TNEWS 、'IFLYTEK'、'CMNLI'、'WSC'和'CSL'。更多CLUE数据集的说明详见 `CLUE GitHub <https://github.com/CLUEbenchmark/CLUE>`_
**参数:**
- **dataset_files** (Union[str, list[str]]) - 数据集文件路径支持单文件路径字符串、多文件路径字符串列表或可被glob库模式匹配的字符串文件列表将在内部进行字典排序。
- **task** (str, 可选) - 任务类型,可取值为 `AFQMC``Tnews``IFLYTEK``CMNLI``WSC``CSL` (默认为: `AFQMC` )。
- **usage** (str, 可选) - 指定数据集的子集,可取值为 `train``test``eval` (默认为: `train` )。
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数默认为None即读取所有图像样本
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数(默认值None即使用mindspore.dataset.config中配置的线程数
- **shuffle** (Union[bool, Shuffle level], 可选) - 每个epoch中数据混洗的模式默认为为mindspore.dataset.Shuffle.GLOBAL。如果为False则不混洗如果为True等同于将 `shuffle` 设置为mindspore.dataset.Shuffle.GLOBAL。另外也可以传入枚举变量设置shuffle级别
- **task** (str, 可选) - 任务类型,可取值为 'AFQMC' 、'TNEWS'、'IFLYTEK'、'CMNLI'、'WSC' 或 'CSL'。默认值:'AFQMC'。
- **usage** (str, 可选) - 指定数据集的子集,可取值为'train''test'或'eval',默认值:'train'。
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数。默认值None读取所有样本。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数。
- **shuffle** (Union[bool, Shuffle], 可选) - 每个epoch中数据混洗的模式支持传入bool类型与枚举类型进行指定默认值mindspore.dataset.Shuffle.GLOBAL。
如果`shuffle`为False则不混洗如果`shuffle`为True等同于将 `shuffle` 设置为mindspore.dataset.Shuffle.GLOBAL。
通过传入枚举变量设置数据混洗的模式:
- **Shuffle.GLOBAL**:混洗文件和样本。
- **Shuffle.FILES**:仅混洗文件。
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 数据缓存客户端实例用于加快数据集处理速度默认为None不使用缓存
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读 `单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存。
根据给定的 `task` 参数配置,数据集会生成不同的输出列:
- `task` = 'AFQMC'
- usage = 'train',输出列: `[sentence1, dtype=string]`, `[sentence2, dtype=string]`, `[label, dtype=string]`.
- usage = 'test',输出列: `[id, dtype=uint8]`, `[sentence1, dtype=string]`, `[sentence2, dtype=string]`.
- usage = 'eval',输出列: `[sentence1, dtype=string]`, `[sentence2, dtype=string]`, `[label, dtype=string]`.
- `task` = 'TNEWS'
- usage = 'train',输出列: `[label, dtype=string]`, `[label_des, dtype=string]`, `[sentence, dtype=string]`, `[keywords, dtype=string]`.
- usage = 'test',输出列: `[label, dtype=string]`, `[label_des, dtype=string]`, `[sentence, dtype=string]`, `[keywords, dtype=string]`.
- usage = 'eval',输出列: `[label, dtype=string]`, `[label_des, dtype=string]`, `[sentence, dtype=string]`, `[keywords, dtype=string]`.
- `task` = 'IFLYTEK'
- usage = 'train',输出列: `[label, dtype=string]`, `[label_des, dtype=string]`, `[sentence, dtype=string]`.
- usage = 'test',输出列: `[id, dtype=string]`, `[sentence, dtype=string]`.
- usage = 'eval',输出列: `[label, dtype=string]`, `[label_des, dtype=string]`, `[sentence, dtype=string]`.
- `task` = 'CMNLI'
- usage = 'train',输出列: `[sentence1, dtype=string]`, `[sentence2, dtype=string]`, `[label, dtype=string]`.
- usage = 'test',输出列: `[id, dtype=uint8]`, `[sentence1, dtype=string]`, `[sentence2, dtype=string]`.
- usage = 'eval',输出列: `[sentence1, dtype=string]`, `[sentence2, dtype=string]`, `[label, dtype=string]`.
- `task` = 'WSC'
- usage = 'train',输出列: `[span1_index, dtype=uint8]`, `[span2_index, dtype=uint8]`, `[span1_text, dtype=string]`, `[span2_text, dtype=string]`, `[idx, dtype=uint8]`, `[text, dtype=string]`, `[label, dtype=string]`.
- usage = 'test',输出列: `[span1_index, dtype=uint8]`, `[span2_index, dtype=uint8]`, `[span1_text, dtype=string]`, `[span2_text, dtype=string]`, `[idx, dtype=uint8]`, `[text, dtype=string]`.
- usage = 'eval',输出列: `[span1_index, dtype=uint8]`, `[span2_index, dtype=uint8]`, `[span1_text, dtype=string]`, `[span2_text, dtype=string]`, `[idx, dtype=uint8]`, `[text, dtype=string]`, `[label, dtype=string]`.
- `task` = 'CSL'
- usage = 'train',输出列: `[id, dtype=uint8]`, `[abst, dtype=string]`, `[keyword, dtype=string]`, `[label, dtype=string]`.
- usage = 'test',输出列: `[id, dtype=uint8]`, `[abst, dtype=string]`, `[keyword, dtype=string]`.
- usage = 'eval',输出列: `[id, dtype=uint8]`, `[abst, dtype=string]`, `[keyword, dtype=string]`, `[label, dtype=string]`.
**异常:**
- **RuntimeError** - `dataset_files` 所指的文件无效或不存在。
- **RuntimeError** - `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError** - `dataset_files` 参数所指的文件无效或不存在。
- **RuntimeError** - `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
@ -69,7 +73,7 @@ mindspore.dataset.CLUEDataset
CLUE又名中文语言理解测评基准包含许多有代表性的数据集涵盖单句分类、句对分类和机器阅读理解等任务。
您可以将数据集解压成如下的文件结构并通过MindSpore的API进行读取`afqmc` 数据集为例:
您可以将数据集解压成如下的文件结构并通过MindSpore的API进行读取'afqmc' 数据集为例:
.. code-block::

View File

@ -3,35 +3,37 @@
.. py:class:: mindspore.dataset.CSVDataset(dataset_files, field_delim=',', column_defaults=None, column_names=None, num_samples=None, num_parallel_workers=None, shuffle=<Shuffle.GLOBAL: 'global'>, num_shards=None, shard_id=None, cache=None)
读取和解析逗号分隔值CSV数据文件作为源数据集。生成的数据集的列取决于源CSV文件。
读取和解析CSV数据文件构建数据集。生成的数据集的列名和列类型取决于输入的CSV文件。
**参数:**
- **dataset_files** (Union[str, list[str]]) - 数据集文件路径支持单文件路径字符串、多文件路径字符串列表或可被glob库模式匹配的字符串文件列表将在内部进行字典排序。
- **field_delim** (str可选) - 指定用于分隔字段的分隔符(默认为',')。
- **column_defaults** (list可选) - 以列表形式指定每个CSV字段的数据类型默认为None有效的类型包括float、int或string。如果未指定该列表则所有列的数据类型将被视为string。
- **column_names** (list[str],可选) - 指定数据集生成的列名默认值为None。如果未指定该列表则将CSV文件第一行的字段作为列名生成。
- **num_samples** (int可选) - 指定从数据集中读取的样本数默认为None即读取所有样本
- **num_parallel_workers** (int可选) - 指定读取数据的工作线程数(默认值None即使用mindspore.dataset.config中配置的线程数
- **shuffle** (Union[bool, Shuffle level], 可选) - 每个epoch中数据混洗的模式默认为为mindspore.dataset.Shuffle.GLOBAL。如果为False则不混洗如果为True等同于将 `shuffle` 设置为mindspore.dataset.Shuffle.GLOBAL。另外也可以传入枚举变量设置shuffle级别
- **field_delim** (str, 可选) - 指定用于分隔字段的分隔符,默认值:','。
- **column_defaults** (list, 可选) - 指定每个数据列的数据类型有效的类型包括float、int或string。默认值None不指定。如果未指定该参数则所有列的数据类型将被视为string。
- **column_names** (list[str], 可选) - 指定数据集生成的列名。默认值None不指定。如果未指定该列表则将CSV文件首行提供的字段作为列名生成。
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数。默认值None读取全部样本。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数。
- **shuffle** (Union[bool, Shuffle], 可选) - 每个epoch中数据混洗的模式支持传入bool类型与枚举类型进行指定默认值mindspore.dataset.Shuffle.GLOBAL。
如果`shuffle`为False则不混洗如果`shuffle`为True等同于将 `shuffle` 设置为mindspore.dataset.Shuffle.GLOBAL。
通过传入枚举变量设置数据混洗的模式:
- Shuffle.GLOBAL混洗文件和样本。
- Shuffle.FILES仅混洗文件。
- **Shuffle.GLOBAL**:混洗文件和文件中的数据
- **Shuffle.FILES**:仅混洗文件。
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 数据缓存客户端实例用于加快数据集处理速度默认为None不使用缓存
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读 `单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存
**异常:**
- **RuntimeError** - 参数 `dataset_files` 所指的文件无效或不存在。
- **RuntimeError** - 参数 `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError** - `dataset_files` 参数所指的文件无效或不存在。
- **RuntimeError** - `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
**样例:**
>>> csv_dataset_dir = ["/path/to/csv_dataset_file"] # 此列表可以包含1个或多个CSV文件
>>> csv_dataset_dir = ["/path/to/csv_dataset_file"] # 此列表可以包含个或多个CSV文件
>>> dataset = ds.CSVDataset(dataset_files=csv_dataset_dir, column_names=['col1', 'col2', 'col3', 'col4'])
.. include:: mindspore.dataset.Dataset.rst

View File

@ -3,35 +3,35 @@ mindspore.dataset.CelebADataset
.. py:class:: mindspore.dataset.CelebADataset(dataset_dir, num_parallel_workers=None, shuffle=None, usage='all', sampler=None, decode=False, extensions=None, num_samples=None, num_shards=None, shard_id=None, cache=None)
用于读取和解析CelebA数据集的源数据文件。目前仅支持读取解析标注文件 `list_attr_celeba.txt` 作为数据集的标注
读取和解析CelebA数据集的源文件构建数据集。目前仅支持解析CelebA数据集中的 `list_attr_celeba.txt` 文件作为数据集的label
生成的数据集有两列`[image, attr]`。列: `image` 的数据类型为uint8。列: `attr` 的数据类型为uint32并以one-hot编码的形式生成。
生成的数据集有两列 `[image, attr]``image` 列的数据类型为uint8。`attr`的数据类型为uint32并以one-hot编码的形式生成。
**参数:**
- **dataset_dir** (str) - 包含数据集文件的根目录路径。
- **num_parallel_workers** (int,可选) - 指定读取数据的工作线程数默认值None使用mindspore.dataset.config中配置的线程数
- **shuffle** (bool,可选) - 是否混洗数据集默认为None下表中会展示不同配置的预期行为
- **usage** (str可选) - 指定数据集的子集,可取值为'train''valid''test'或'all'。(默认值为'all',即全部样本图片)
- **sampler** (Sampler,可选) - 指定从数据集中选取样本的采样器(默认为None下表中会展示不同配置的预期行为
- **decode** (bool,可选) - 是否对读取的图像进行解码操作默认为False
- **extensions** (list[str],可选) - 指定文件扩展后缀仅读取这些后缀的文件到数据集中默认为None
- **num_samples** (int,可选) - 指定从数据集中读取的样本数可以小于数据集总数默认值为None即全部样本图片)
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 数据缓存客户端实例用于加快数据集处理速度默认为None不使用缓存
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数。
- **shuffle** (bool, 可选) - 是否混洗数据集。默认值None下表中会展示不同参数配置的预期行为
- **usage** (str, 可选) - 指定数据集的子集,可取值为'train''valid''test'或'all'。默认值:'all',全部样本图片
- **sampler** (Sampler, 可选) - 指定从数据集中选取样本的采样器,默认值:None下表中会展示不同配置的预期行为。
- **decode** (bool, 可选) - 是否对读取的图片进行解码操作默认值False不解码
- **extensions** (list[str], 可选) - 指定文件的扩展名仅读取与指定扩展名匹配的文件到数据集中默认值None
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数可以小于数据集总数。默认值None读取全部样本图片
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后 `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读`单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存
**异常:**
- **RuntimeError** - 参数 `dataset_dir` 不包含任何数据文件。
- **RuntimeError** - 参数 `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError** - 同时指定了 `sampler``shuffle`
- **RuntimeError** - 同时指定了 `sampler``num_shards`
- **RuntimeError** - `dataset_dir` 路径下不包含任何数据文件。
- **RuntimeError** - `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError** - 同时指定了 `sampler``shuffle` 参数
- **RuntimeError** - 同时指定了 `sampler``num_shards` 参数
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
.. note:: 此数据集可以指定 `sampler` 参数,但 `sampler``shuffle` 是互斥的。下表展示了几种合法的输入参数及预期的行为。
.. note:: 此数据集可以指定参数 `sampler` ,但参数 `sampler`参数 `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数组合及预期的行为。
.. list-table:: 配置 `sampler``shuffle` 的不同组合得到的预期排序结果
:widths: 25 25 50
@ -49,13 +49,13 @@ mindspore.dataset.CelebADataset
* - None
- False
- 顺序排列
* - 参数 `sampler`
* - `sampler` 实例
- None
- 由 `sampler` 行为定义的顺序
* - 参数 `sampler`
* - `sampler` 实例
- True
- 不允许
* - 参数 `sampler`
* - `sampler` 实例
- False
- 不允许
@ -63,18 +63,18 @@ mindspore.dataset.CelebADataset
>>> celeba_dataset_dir = "/path/to/celeba_dataset_directory"
>>>
>>> # 从CelebA数据集中随机读取5样本图片
>>> # 从CelebA数据集中随机读取5样本图片
>>> dataset = ds.CelebADataset(dataset_dir=celeba_dataset_dir, usage='train', num_samples=5)
>>>
>>> # 注:在生成的数据集对象中,每一次迭代得到的数据行都有"image"和"attr" 两个键
**关于CelebA数据集**
CelebFaces Attributes DatasetCelebA数据集是一个大规模的人脸属性数据集拥有超过20万名人图像每个图像都有40个属性标注。此数据集包含了大量不同姿态、各种背景的人脸图像种类丰富、数量庞大、标注充分。数据集总体包含
CelebFaces Attributes DatasetCelebA数据集是一个大规模的人脸属性数据集拥有超过20万名人图像每个图像都有40个属性标注。此数据集包含了大量不同姿态、各种背景的人脸图像种类丰富、数量庞大、标注充分。数据集总体包含
- 10177个不同的身份
- 202599张人脸图像
- 每张图像拥有5个五官位置标注40个属性标签
- 每张图像拥有5个五官位置标注40个属性标签
此数据集可用于各种计算机视觉任务的训练和测试,包括人脸识别、人脸检测、五官定位、人脸编辑和合成等。
@ -98,7 +98,7 @@ mindspore.dataset.CelebADataset
├── list_attr_celeba.txt
└── identity_CelebA.txt
您可以将数据集解压成如下的文件结构并通过MindSpore的API进行读取。
您可以将上述Anno目录下的txt文件与Img目录下的文件解压放至同一目录并通过MindSpore的API进行读取。
.. code-block::

View File

@ -3,33 +3,34 @@ mindspore.dataset.Cifar100Dataset
.. py:class:: mindspore.dataset.Cifar100Dataset(dataset_dir, usage=None, num_samples=None, num_parallel_workers=None, shuffle=None, sampler=None, num_shards=None, shard_id=None, cache=None)
用于读取和解析CIFAR-100数据集的源数据文件
读取和解析CIFAR-100数据集的源文件构建数据集
生成的数据集有三列: `[image, coarse_label, fine_label]``image` 列的数据类型是uint8。 `coarse_label``fine_labels` 列的数据是uint32类型的标量
生成的数据集有三列: `[image, coarse_label, fine_label]``image` 列的数据类型为uint8。 `coarse_label``fine_labels` 列的数据类型为uint32
**参数:**
- **dataset_dir** (str): 包含数据集文件的根目录路径。
- **usage** (str, 可选): 指定数据集的子集,可取值为 `train` `test``all`。使用 `train` 参数将会读取50,000个训练样本 `test` 将会读取10,000个测试样本 `all` 将会读取全部60,000个样本默认值为None即全部样本图片
- **num_samples** (int, 可选): 指定从数据集中读取的样本数可以小于数据集总数默认值为None即全部样本图片)。
- **num_parallel_workers** (int, 可选): 指定读取数据的工作线程数默认值None即使用mindspore.dataset.config中配置的线程数
- **shuffle** (bool, 可选): 是否混洗数据集默认为None下表中会展示不同配置的预期行为
- **sampler** (Sampler, 可选): 指定从数据集中选取样本的采样器默认为None下表中会展示不同配置的预期行为
- **num_shards** (int, 可选): 分布式训练时将数据集划分成指定的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选): 分布式训练时指定使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选): 单节点数据缓存能够加快数据加载和处理的速度默认值None即不使用缓存加速
- **usage** (str, 可选): 指定数据集的子集,可取值为'train''test'或'all'。
取值为'train'时将会读取50,000个训练样本取值为'test'时将会读取10,000个测试样本取值为'all'时将会读取全部60,000个样本。默认值None全部样本图片。
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数可以小于数据集总数。默认值None读取全部样本图片。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数。
- **shuffle** (bool, 可选) - 是否混洗数据集。默认值None下表中会展示不同参数配置的预期行为。
- **sampler** (Sampler, 可选) - 指定从数据集中选取样本的采样器默认值None下表中会展示不同配置的预期行为。
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后 `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读`单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存。
**异常:**
- **RuntimeError:** `dataset_dir` 路径下不包含数据文件。
- **RuntimeError:** `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError:** `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError:** 同时指定了 `sampler``shuffle` 参数。
- **RuntimeError:** 同时指定了 `sampler``num_shards` 参数。
- **RuntimeError:** 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError:** 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **ValueError:** `shard_id` 参数错误小于0或者大于等于 `num_shards`)。
.. note:: 此数据集可以指定 `sampler` 参数,但 `sampler``shuffle` 是互斥的。下表展示了几种合法的输入参数及预期的行为。
.. note:: 此数据集可以指定参数 `sampler` ,但参数 `sampler`参数 `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数组合及预期的行为。
.. list-table:: 配置 `sampler``shuffle` 的不同组合得到的预期排序结果
:widths: 25 25 50
@ -47,13 +48,13 @@ mindspore.dataset.Cifar100Dataset
* - None
- False
- 顺序排列
* - 参数 `sampler`
* - `sampler` 实例
- None
- 由 `sampler` 行为定义的顺序
* - 参数 `sampler`
* - `sampler` 实例
- True
- 不允许
* - 参数 `sampler`
* - `sampler` 实例
- False
- 不允许
@ -73,7 +74,7 @@ mindspore.dataset.Cifar100Dataset
CIFAR-100数据集和CIFAR-10数据集非常相似CIFAR-100有100个类别每类包含600张图片其中500张训练图片和100张测试图片。这100个类别又被分成20个超类。每个图片都有一个"fine"标签(所属子类)和一个"coarse"标签(所属超类)。
以下为原始CIFAR-100数据集结构。您可以将数据集解压成如下的文件结构并通过MindSpore的API进行读取。
以下为原始CIFAR-100数据集的结构,您可以将数据集文件解压得到如下的文件结构并通过MindSpore的API进行读取。
.. code-block::

View File

@ -3,33 +3,34 @@ mindspore.dataset.Cifar10Dataset
.. py:class:: mindspore.dataset.Cifar10Dataset(dataset_dir, usage=None, num_samples=None, num_parallel_workers=None, shuffle=None, sampler=None, num_shards=None, shard_id=None, cache=None)
用于读取和解析CIFAR-10数据集的源数据集文件。该API目前仅支持解析二进制版本的CIFAR-10文件CIFAR-10 binary version
读取和解析CIFAR-10数据集的源文件构建数据集。该API目前仅支持解析二进制版本的CIFAR-10文件CIFAR-10 binary version
生成的数据集有两列: `[image, label]``image` 列的数据类型是uint8。`label` 列的数据是uint32类型的标量
生成的数据集有两列: `[image, label]``image` 列的数据类型是uint8。`label` 列的数据类型是uint32。
**参数:**
- **dataset_dir** (str): 包含数据集文件的根目录路径。
- **usage** (str, 可选): 指定数据集的子集,可取值为 `train` `test``all` 。使用 `train` 参数将会读取50,000个训练样本`test` 将会读取10,000个测试样本 `all` 将会读取全部60,000个样本默认值为None即全部样本图片
- **num_samples** (int, 可选): 指定从数据集中读取的样本数可以小于数据集总数默认值为None即全部样本图片)。
- **num_parallel_workers** (int, 可选): 指定读取数据的工作线程数默认值None即使用mindspore.dataset.config中配置的线程数
- **shuffle** (bool, 可选): 是否混洗数据集默认为None下表中会展示不同配置的预期行为
- **sampler** (Sampler, 可选): 指定从数据集中选取样本的采样器默认为None下表中会展示不同配置的预期行为
- **num_shards** (int, 可选): 分布式训练时将数据集划分成指定的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选): 分布式训练时指定使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选): 单节点数据缓存能够加快数据加载和处理的速度默认值None即不使用缓存加速
- **usage** (str, 可选): 指定数据集的子集,可取值为'train''test'或'all'。
取值为'train'时将会读取50,000个训练样本取值为'test'时将会读取10,000个测试样本取值为'all'时将会读取全部60,000个样本。默认值None全部样本图片。
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数可以小于数据集总数。默认值None读取全部样本图片。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数。
- **shuffle** (bool, 可选) - 是否混洗数据集。默认值None下表中会展示不同参数配置的预期行为。
- **sampler** (Sampler, 可选) - 指定从数据集中选取样本的采样器默认值None下表中会展示不同配置的预期行为。
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后 `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读`单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存。
**异常:**
- **RuntimeError:** `dataset_dir` 路径下不包含数据文件。
- **RuntimeError:** `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError:** `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError:** 同时指定了 `sampler``shuffle` 参数。
- **RuntimeError:** 同时指定了 `sampler``num_shards` 参数。
- **RuntimeError:** 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError:** 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **ValueError:** `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
.. note:: 此数据集可以通过 `sampler` 指定任意采样器,但参数 `sampler` `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数及预期的行为。
.. note:: 此数据集可以指定参数 `sampler` ,但参数 `sampler` 和参数 `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数组合及预期的行为。
.. list-table:: 配置 `sampler``shuffle` 的不同组合得到的预期排序结果
:widths: 25 25 50
@ -47,13 +48,13 @@ mindspore.dataset.Cifar10Dataset
* - None
- False
- 顺序排列
* - 参数 `sampler`
* - `sampler` 实例
- None
- 由 `sampler` 行为定义的顺序
* - 参数 `sampler`
* - `sampler` 实例
- True
- 不允许
* - 参数 `sampler`
* - `sampler` 实例
- False
- 不允许
@ -74,9 +75,9 @@ mindspore.dataset.Cifar10Dataset
**关于CIFAR-10数据集:**
CIFAR-10数据集由10类60000张32x32彩色图片组成每类6000张图片。有50000个训练样本和10000个测试样本。图片分为飞机、汽车、鸟类、猫、鹿、狗、青蛙、马、船和卡车这10类
CIFAR-10数据集由60000张32x32彩色图片组成总共有10个类别每类6000张图片。有50000个训练样本和10000个测试样本。10个类别包含飞机、汽车、鸟类、猫、鹿、狗、青蛙、马、船和卡车。
以下为原始CIFAR-10 数据集结构。您可以将数据集解压成如下的文件结构并通过MindSpore的API进行读取。
以下为原始CIFAR-10数据集的结构,您可以将数据集文件解压得到如下的文件结构并通过MindSpore的API进行读取。
.. code-block::

View File

@ -3,48 +3,49 @@
.. py:class:: mindspore.dataset.CocoDataset(dataset_dir, annotation_file, task='Detection', num_samples=None, num_parallel_workers=None, shuffle=None, decode=False, sampler=None, num_shards=None, shard_id=None, cache=None, extra_metadata=False)
用于读取和解析COCO数据集的源数据文件。该API支持解析COCO2017数据集支持四种类型的机器学习任务分别是目标检测、关键点检测、物体分割和全景分割。
根据不同 `task` 参数设置,生成数据集具有不同的输出列:
- `task` = `Detection`, 输出列: `[image, dtype=uint8]`, `[bbox, dtype=float32]`, `[category_id, dtype=uint32]`, `[iscrowd, dtype=uint32]`
- `task` = `Stuff`, 输出列: `[image, dtype=uint8]`, `[segmentation,dtype=float32]`, `[iscrowd,dtype=uint32]`
- `task` = `Keypoint`, 输出列: `[image, dtype=uint8]`, `[keypoints, dtype=float32]`, `[num_keypoints, dtype=uint32]`
- `task` = `Panoptic`, 输出列: `[image, dtype=uint8]`, `[bbox, dtype=float32]`, `[category_id, dtype=uint32]`, `[iscrowd, dtype=uint32]`, `[area, dtype=uint32]`
读取和解析COCO数据集的源文件构建数据集。该API支持解析COCO2017数据集支持四种类型的机器学习任务分别是目标检测、关键点检测、物体分割和全景分割。
**参数:**
- **dataset_dir** (str) - 包含数据集文件的根目录路径。
- **annotation_file** (str) - 数据集标注JSON文件的路径。
- **task** (str可选) - 指定COCO数据的任务类型。支持的任务类型包括`Detection``Stuff``Panoptic``Keypoint` (默认为 `Detection` )。
- **num_samples** (int可选) - 指定从数据集中读取的样本数可以小于数据集总数默认值为None即全部样本图片)。
- **num_parallel_workers** (int可选) - 指定读取数据的工作线程数默认值None即使用mindspore.dataset.config中配置的线程数
- **shuffle** (bool可选) - 是否混洗数据集默认为None下表中会展示不同配置的预期行为
- **decode** (bool可选) - 是否对读取的图像进行解码操作默认为False
- **sampler** (Sampler可选) - 指定从数据集中选取样本的采样器默认为None下表中会展示不同配置的预期行为
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 数据缓存客户端实例用于加快数据集处理速度默认为None不使用缓存
- **extra_metadata** (bool可选) - 用于指定是否额外输出一列数据用于表示图像元信息。如果为True则将额外输出一列数据名为 `[_meta-filename, dtype=string]` 默认值为False
- **task** (str, 可选) - 指定COCO数据的任务类型。支持的任务类型包括'Detection'、'Stuff' 、'Panoptic'和'Keypoint'。默认值:'Detection'。
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数可以小于数据集总数。默认值None全部样本图片。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数默认值使用mindspore.dataset.config中配置的线程数。
- **shuffle** (bool, 可选) - 是否混洗数据集。默认值None下表中会展示不同参数配置的预期行为。
- **decode** (bool, 可选) - 是否对读取的图片进行解码操作默认值False不解码。
- **sampler** (Sampler, 可选) - 指定从数据集中选取样本的采样器默认值None下表中会展示不同配置的预期行为。
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后 `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读`单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存。
- **extra_metadata** (bool, 可选) - 用于指定是否额外输出一个数据列用于表示图片元信息。如果为True则将额外输出一个名为 `[_meta-filename, dtype=string]` 的数据列默认值False。
根据不同 `task` 参数设置,生成数据集具有不同的输出列:
- `task` = 'Detection', 输出列: `[image, dtype=uint8]`, `[bbox, dtype=float32]`, `[category_id, dtype=uint32]`, `[iscrowd, dtype=uint32]`
- `task` = 'Stuff', 输出列: `[image, dtype=uint8]`, `[segmentation,dtype=float32]`, `[iscrowd,dtype=uint32]`
- `task` = 'Keypoint', 输出列: `[image, dtype=uint8]`, `[keypoints, dtype=float32]`, `[num_keypoints, dtype=uint32]`
- `task` = 'Panoptic', 输出列: `[image, dtype=uint8]`, `[bbox, dtype=float32]`, `[category_id, dtype=uint32]`, `[iscrowd, dtype=uint32]`, `[area, dtype=uint32]`
**异常:**
- **RuntimeError** - 参数 `dataset_dir` 不包含任何数据文件。
- **RuntimeError** - 参数 `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError** - 同时指定了 `sampler``shuffle`
- **RuntimeError** - 同时指定了 `sampler``num_shards`
- **RuntimeError** - `dataset_dir` 路径下不包含任何数据文件。
- **RuntimeError** - `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError** - 同时指定了 `sampler``shuffle` 参数
- **RuntimeError** - 同时指定了 `sampler``num_shards` 参数
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **RuntimeError** - 解析JSON文件失败。
- **ValueError** - 指定的任务不为 `Detection` `Stuff` `Panoptic``Keypoint`
- **ValueError** - 参数 `annotation_file` 对应的文件不存在。
- **ValueError** - 参数 `dataset_dir` 路径不存在。
- **ValueError** - 参数 `shard_id` 错误小于0或者大于等于 `num_shards` )。
- **RuntimeError** - 解析 `annotation_file` 指定的JSON文件失败。
- **ValueError** - `task` 参数取值不为 `Detection``Stuff``Panoptic``Keypoint`
- **ValueError** - `annotation_file` 参数对应的文件不存在。
- **ValueError** - `dataset_dir` 参数路径不存在。
- **ValueError** - `shard_id` 参数值错误小于0或者大于等于 `num_shards` )。
.. note::
- 当指定 `extra_metadata` 为True时除非显式使用 `rename` 算子以删除元信息列明的前缀('_meta-'),否则迭代的数据行中不会出现'[_meta-filename, dtype=string]'列。
- 当参数 `extra_metadata` 为True时还需使用 `rename` 操作删除额外数据列'_meta-filename'的前缀'_meta-'
否则迭代得到的数据行中不会出现此额外数据列。
- CocoDataset的 `sampler` 参数不支持指定PKSampler。
- 此数据集可以指定 `sampler` 参数,但 `sampler``shuffle` 是互斥的。下表展示了几种合法的输入参数及预期的行为。
- 此数据集可以指定参数 `sampler` ,但参数 `sampler`参数 `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数组合及预期的行为。
.. list-table:: 配置 `sampler``shuffle` 的不同组合得到的预期排序结果
:widths: 25 25 50
@ -62,13 +63,13 @@
* - None
- False
- 顺序排列
* - 参数 `sampler`
- No ne
* - `sampler` 实例
- None
- 由 `sampler` 行为定义的顺序
* - 参数 `sampler`
* - `sampler` 实例
- True
- 不允许
* - 参数 `sampler`
* - `sampler` 实例
- False
- 不允许
@ -103,7 +104,7 @@
Microsoft Common Objects in ContextCOCO是一个大型数据集该数据集专门为目标检测语义分割和字幕生成任务而设计。它拥有330K张图像标记数量大于200K个、1500000个目标实例、80个目标类别、91个对象类别、每张图片均有5个字幕、带关键点标注的人有250000个。与流行的ImageNet数据集相比COCO的类别较少但每个类别中的图片样本非常多。
您可以解压缩原始COCO-2017数据集文件如下目录结构并通过MindSpore的API读取。
您可以解压缩原始COCO-2017数据集文件得到如下目录结构并通过MindSpore的API读取。
.. code-block::

View File

@ -3,44 +3,45 @@
.. py:class:: mindspore.dataset.GeneratorDataset(source, column_names=None, column_types=None, schema=None, num_samples=None, num_parallel_workers=1, shuffle=None, sampler=None, num_shards=None, shard_id=None, python_multiprocessing=True, max_rowsize=6)
通过调用Python数据源从Python中生成数据作为源数据集。生成的数据集的列名和列类型取决于用户定义的Python数据源。
自定义Python数据源通过迭代该数据源构造数据集。生成的数据集的列名和列类型取决于用户定义的Python数据源。
**参数:**
- **source** (Union[Callable, Iterable, Random Accessible]) -
一个Python的可调用对象可以是一个可迭代的Python对象或支持随机访问的Python对象。
要求传入的可调用对象,可以通过 `source().next()` 的方式返回一个由NumPy数组构成的元组。
要求传入的可迭代对象,可以通过 `iter(source).next()` 的方式返回一个由NumPy数组构成的元组。
要求传入的支持随机访问对象,可以通过 `source[idx]` 的方式返回一个由NumPy数组构成的元组。
- **column_names** (Union[str, list[str]],可选) - 指定数据集生成的列名默认值为None用户必须提供此参数或通过参数 `schema` 指定列名。
- **column_types** ((list[mindspore.dtype],可选) - 指定生成数据集各个数据列的数据类型默认为None
- **source** (Union[Callable, Iterable, Random Accessible]) - 一个Python的可调用对象可以是可迭代的Python对象或支持随机访问的Python对象。
- 如果`source`是可调用对象,要求`source`对象可以通过 `source().next()` 的方式返回一个由NumPy数组构成的元组。
- 如果`source`是可迭代对象,要求`source`对象通过 `iter(source).next()` 的方式返回一个由NumPy数组构成的元组。
- 如果`source`是支持随机访问的对象,要求`source`对象通过 `source[idx]` 的方式返回一个由NumPy数组构成的元组。
- **column_names** (Union[str, list[str]],可选) - 指定数据集生成的列名默认值None不指定。用户可以通过此参数或 `schema` 参数指定列名。
- **column_types** (list[mindspore.dtype],可选) - 指定生成数据集各个数据列的数据类型默认值None不指定
如果未指定该参数,则自动推断类型;如果指定了该参数,将在数据输出时做类型匹配检查。
- **schema** (Union[Schema, str],可选) - 读取模式策略用于指定读取数据列的数据类型、数据维度等信息支持传入JSON文件或 `schema` 对象的路径。
对于数据集生成的列名,用户需要提供 `column_names``schema` 进行指定,如果同时指定两者,则将优先从 `schema` 获取列名信息。
- **num_samples** (int可选) - 指定从数据集中读取的样本数默认为None
- **num_parallel_workers** (int可选) - 指定读取数据的工作线程数默认值为1
- **shuffle** (bool可选) - 是否混洗数据集。只有输入的 `source` 参数带有可随机访问属性__getitem__才可以指定该参数。默认值为None下表中会展示不同配置的预期行为
- **sampler** (Union[Sampler, Iterable],可选) - 指定从数据集中选取样本的采样器。只有输入的 `source` 参数带有可随机访问属性__getitem__才可以指定该参数默认值为None下表中会展示不同配置的预期行为
- **num_shards** (int, 可选): 分布式训练时将数据集划分成指定的分片数默认值None。指定此参数后`num_samples` 表示每个分片的最大样本数。需要输入 `data` 支持可随机访问才能指定该参数。
- **shard_id** (int, 可选): 分布式训练时指定使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **python_multiprocessing** (bool可选) - 启用Python多进程模式加速运算默认为True。当传入Python对象的计算量很大时开启此选项可能会有较好效果。
- **max_rowsize** (int可选) - 指定在多进程之间复制数据时共享内存分配的最大空间数量级为MB默认为6MB仅当参数 `python_multiprocessing` 设为True时此参数才会生效。
- **schema** (Union[Schema, str],可选) - 读取模式策略,用于指定读取数据列的数据类型、数据维度等信息。
支持传入JSON文件路径或 mindspore.dataset.Schema 构造的对象。默认值None不指定。
用户可以通过提供 `column_names``schema` 指定数据集的列名,但如果同时指定两者,则将优先从 `schema` 中获取列名信息。
- **num_samples** (int可选) - 指定从数据集中读取的样本数默认值None读取全部样本。
- **num_parallel_workers** (int可选) - 指定读取数据的工作线程数默认值1。
- **shuffle** (bool可选) - 是否混洗数据集。只有输入的 `source` 参数带有可随机访问属性(`__getitem__`才可以指定该参数。默认值None下表中会展示不同配置的预期行为。
- **sampler** (Union[Sampler, Iterable],可选) - 指定从数据集中选取样本的采样器。只有输入的 `source` 参数带有可随机访问属性(`__getitem__`才可以指定该参数。默认值None下表中会展示不同配置的预期行为。
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **python_multiprocessing** (bool可选) - 启用Python多进程模式加速运算默认值True。当传入 `source` 的Python对象的计算量很大时开启此选项可能会有较好效果。
- **max_rowsize** (int可选) - 指定在多进程之间复制数据时共享内存分配的最大空间默认值6数量级为MB。仅当参数 `python_multiprocessing` 设为True时此参数才会生效。
**异常:**
- **RuntimeError** - Python对象 `source` 在执行期间引发异常。
- **RuntimeError** - 参数 `column_names` 指定的列名数量与 `source` 的输出数据数量不匹配。
- **RuntimeError** - 参数 `num_parallel_workers` 超过最大线程数。
- **RuntimeError** - 同时指定了 `sampler``shuffle`
- **RuntimeError** - 同时指定了 `sampler``num_shards`
- **RuntimeError** - `column_names` 参数指定的列名数量与 `source` 参数输出的数据数量不匹配。
- **RuntimeError** - `num_parallel_workers` 参数超过最大线程数。
- **RuntimeError** - 同时指定了 `sampler``shuffle` 参数
- **RuntimeError** - 同时指定了 `sampler``num_shards` 参数
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
.. note::
- `source` 参数接收用户自定义的Python函数PyFuncs不要将 `mindspore.nn``mindspore.ops` 目录下或其他的网络计算算子添加
`source` 中。
- 此数据集可以指定 `sampler` 参数,但 `sampler``shuffle` 是互斥的。下表展示了几种合法的输入参数及预期的行为。
- 此数据集可以指定参数 `sampler` ,但参数 `sampler`参数 `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数组合及预期的行为。
.. list-table:: 配置 `sampler``shuffle` 的不同组合得到的预期排序结果
:widths: 25 25 50
@ -58,13 +59,13 @@
* - None
- False
- 顺序排列
* - 参数 `sampler`
* - `sampler` 实例
- None
- 由 `sampler` 行为定义的顺序
* - 参数 `sampler`
* - `sampler` 实例
- True
- 不允许
* - 参数 `sampler`
* - `sampler` 实例
- False
- 不允许

View File

@ -3,38 +3,38 @@ mindspore.dataset.ImageFolderDataset
.. py:class:: mindspore.dataset.ImageFolderDataset(dataset_dir, num_samples=None, num_parallel_workers=None, shuffle=None, sampler=None, extensions=None, class_indexing=None, decode=False, num_shards=None, shard_id=None, cache=None)
从树状结构的文件目录中读取图像作为源数据集,同一个文件夹中的所有图像都具有相同的标签
从树状结构的文件目录中读取图片构建源数据集同一个文件夹中的所有图片将被分配相同的label
生成的数据集有两列:`[image, label]`列: `image` 的数据为uint8类型列: `label` 的数据是uint32类型的标量
生成的数据集有两列:`[image, label]``image` 列的数据类型为uint8`label` 列的数据类型为uint32
**参数:**
- **dataset_dir** (str) - 包含数据集文件的根目录的路径。
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数可以小于数据集总数默认值为None即全部样本图片
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数默认值None即使用 `mindspore.dataset.config` 中配置的线程数)
- **shuffle** (bool, 可选) - 是否混洗数据集默认为None下表中会展示不同配置的预期行为
- **sampler** (Sampler, 可选) - 指定从数据集中选取样本的采样器(默认为None下表中会展示不同配置的预期行为
- **extensions** (list[str], 可选) - 指定文件扩展后缀仅读取这些后续的文件到数据集中默认为None
- **class_indexing** (dict, 可选) - 指定文件夹名称到类标签的映射要求映射规则为str到int默认为None文件夹名称将按字母顺序排列每类都有一个唯一的索引从0开始
- **decode** (bool, 可选) - 是否对读取的图像进行解码操作默认为False
- **num_shards** (int, 可选) - 分布式训练时将数据集划分成指定的分片数默认值None。指定此参数后`num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 分布式训练时指定使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存能够加快数据加载和处理的速度默认值None, 即不使用缓存加速)
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数可以小于数据集总数。默认值None全部样本图片
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数
- **shuffle** (bool, 可选) - 是否混洗数据集。默认值None下表中会展示不同参数配置的预期行为
- **sampler** (Sampler, 可选) - 指定从数据集中选取样本的采样器,默认值:None下表中会展示不同配置的预期行为。
- **extensions** (list[str], 可选) - 指定文件的扩展名仅读取与指定扩展名匹配的文件到数据集中默认值None
- **class_indexing** (dict, 可选) - 指定文件夹名称到label索引的映射要求映射规则为string到int。文件夹名称将按字母顺序排列索引值从0开始并且要求每个文件夹名称对应的索引值唯一。默认值None不指定
- **decode** (bool, 可选) - 是否对读取的图片进行解码操作默认值False不解码
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后 `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读`单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存
**异常:**
- **RuntimeError** - `dataset_dir` 不包含任何数据文件。
- **RuntimeError** - `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError** - 同时指定了采样器和 `shuffle`
- **RuntimeError** - 同时指定了采样器和分片
- **RuntimeError** - `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError** - 同时指定了 `sampler``shuffle` 参数
- **RuntimeError** - 同时指定了 `sampler``num_shards` 参数
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **RuntimeError** - `class_indexing` 的类型不是字典
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards`)。
- **RuntimeError** - `class_indexing` 参数的类型不是dict
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
.. note::
- 如果 `decode` 参数指定为False`image` 列的shape为[image_size],否则为[H,W,C]。
- 此数据集可以指定 `sampler` 参数,但 `sampler``shuffle` 是互斥的。下表展示了几种合法的输入参数及预期的行为。
- 如果 `decode` 参数的值为False则得到的 `image` 列的shape为[undecoded_image_size]如果为True则 `image` 列的shape为[H,W,C]。
- 此数据集可以指定参数 `sampler` ,但参数 `sampler`参数 `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数组合及预期的行为。
.. list-table:: 配置 `sampler``shuffle` 的不同组合得到的预期排序结果
:widths: 25 25 50
@ -52,13 +52,13 @@ mindspore.dataset.ImageFolderDataset
* - None
- False
- 顺序排列
* - 参数 `sampler`
* - `sampler` 实例
- None
- 由 `sampler` 行为定义的顺序
* - 参数 `sampler`
* - `sampler` 实例
- True
- 不允许
* - 参数 `sampler`
* - `sampler` 实例
- False
- 不允许
@ -80,7 +80,7 @@ mindspore.dataset.ImageFolderDataset
**关于ImageFolderDataset**
您可以将图数据文件构建成如下目录结构并通过MindSpore的API进行读取。
您可以将图数据文件构建成如下目录结构并通过MindSpore的API进行读取。
.. code-block::

View File

@ -3,38 +3,38 @@
.. py:class:: mindspore.dataset.ManifestDataset(dataset_file, usage='train', num_samples=None, num_parallel_workers=None, shuffle=None, sampler=None, class_indexing=None, decode=False, num_shards=None, shard_id=None, cache=None)
读取Manifest文件作为源数据集。
读取和解析Manifest数据文件构建数据集。
生成的数据集有两列: `[image, label]``image` 的数据类型为uint8类型。列 `label` 的数据类型是uint64类型的标量
生成的数据集有两列: `[image, label]``image` 列的数据类型为uint8类型。`label` 列的数据类型为uint64类型
**参数:**
- **dataset_file** (str) - 数据集文件的目录路径。
- **usage** (str,可选) - 指定数据集的子集,可取值为'train'、'eval'和'inference' (默认为'train'
- **num_samples** (int,可选) - 指定从数据集中读取的样本数默认值为None即全部样本图片)
- **num_parallel_workers** (int,可选) - 指定读取数据的工作线程数默认值None使用mindspore.dataset.config中配置的线程数
- **shuffle** (bool,可选) - 是否混洗数据集默认为None下表中会展示不同配置的预期行为
- **sampler** (Sampler,可选) - 指定从数据集中选取样本的采样器(默认为None下表中会展示不同配置的预期行为
- **class_indexing** (dict,可选) - 指定文件夹名称到类标签的映射要求映射规则为str到int默认为None文件夹名称将按字母顺序排列每类都有一个唯一的索引从0开始
- **decode** (bool, 可选) - 是否对读取的图像进行解码操作默认为False
- **num_shards** (int, 可选): 分布式训练时将数据集划分成指定的分片数默认值None。指定此参数后`num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选): 分布式训练时指定使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 数据缓存客户端实例用于加快数据集处理速度默认为None不使用缓存
- **usage** (str, 可选) - 指定数据集的子集,可取值为'train'、'eval' 或 'inference',默认值:'train'
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数可以小于数据集总数。默认值None读取全部样本图片
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数。
- **shuffle** (bool, 可选) - 是否混洗数据集。默认值None下表中会展示不同参数配置的预期行为
- **sampler** (Sampler, 可选) - 指定从数据集中选取样本的采样器,默认值:None下表中会展示不同配置的预期行为。
- **class_indexing** (dict, 可选) - 指定一个从label名称到label索引的映射要求映射规则为string到int。索引值从0开始并且要求每个label名称对应的索引值唯一。默认值None不指定
- **decode** (bool, 可选) - 是否对读取的图片进行解码操作默认值False不解码
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后 `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读`单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存
**异常:**
- **RuntimeError** - 参数 `dataset_files` 不存在或无效
- **RuntimeError** - 参数 `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError** - 同时指定了 `sampler``shuffle`
- **RuntimeError** - 同时指定了 `sampler``num_shards` `shard_id`
- **RuntimeError** - `dataset_files` 路径下不包含任何数据文件
- **RuntimeError** - `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError** - 同时指定了 `sampler``shuffle` 参数
- **RuntimeError** - 同时指定了 `sampler``num_shards` 参数
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **RuntimeError** - 参数 `class_indexing` 的类型不是字典
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards`)。
- **RuntimeError** - `class_indexing` 参数的类型不是dict
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards`)。
.. note::
- 如果 `decode` 参数指定为False`image` 列的shape为[image_size],否则为[H,W,C]。
- 此数据集可以指定 `sampler` 参数,但 `sampler``shuffle` 是互斥的。下表展示了几种合法的输入参数及预期的行为。
- 如果 `decode` 参数的值为False则得到的 `image` 列的shape为[undecoded_image_size]如果为True则 `image` 列的shape为[H,W,C]。
- 此数据集可以指定参数 `sampler` ,但参数 `sampler`参数 `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数组合及预期的行为。
.. list-table:: 配置 `sampler``shuffle` 的不同组合得到的预期排序结果
:widths: 25 25 50
@ -52,13 +52,13 @@
* - None
- False
- 顺序排列
* - 参数 `sampler`
* - `sampler` 实例
- None
- 由 `sampler` 行为定义的顺序
* - 参数 `sampler`
* - `sampler` 实例
- True
- 不允许
* - 参数 `sampler`
* - `sampler` 实例
- False
- 不允许
@ -66,7 +66,7 @@
>>> manifest_dataset_dir = "/path/to/manifest_dataset_file"
>>>
>>> # 1使用个线程读取Manifest数据集文件并指定读取"train"子集数据
>>> # 1使用8个线程读取Manifest数据集文件并指定读取"train"子集数据
>>> dataset = ds.ManifestDataset(dataset_file=manifest_dataset_dir, usage="train", num_parallel_workers=8)
>>>
>>> # 2 对Manifest数据集进行分布式训练并将数据集拆分为2个分片当前数据集仅加载分片ID号为0的数据

View File

@ -3,36 +3,38 @@
.. py:class:: mindspore.dataset.MindDataset(dataset_files, columns_list=None, num_parallel_workers=None, shuffle=None, num_shards=None, shard_id=None, sampler=None, padded_sample=None, num_padded=None, num_samples=None, cache=None)
读取和解析MindRecord数据文件作为源数据集。生成的数据集的列名和列类型取决于MindRecord文件中的保存的列名与类型。
读取和解析MindRecord数据文件构建数据集。生成的数据集的列名和列类型取决于MindRecord文件中的保存的列名与类型。
**参数:**
- **dataset_files** (Union[str, list[str]]) - MindRecord文件路径支持单文件路径字符串、多文件路径字符串列表。如果 `dataset_files` 的类型是字符串则它代表一组具有相同前缀名的MindRecord文件同一路径下具有相同前缀名的其他MindRecord文件将会被自动寻找并加载。如果 `dataset_files` 的类型是列表则它表示所需读取的MindRecord数据文件。
- **columns_list** (list[str],可选) - 指定从MindRecord文件中读取的数据列默认为None读取所有列
- **num_parallel_workers** (int可选) - 指定读取数据的工作线程数默认值None即使用mindspore.dataset.config中配置的线程数
- **shuffle** (Union[bool, Shuffle level], 可选) - 每个epoch中数据混洗的模式默认为为mindspore.dataset.Shuffle.GLOBAL。如果为False则不混洗如果为True等同于将 `shuffle` 设置为mindspore.dataset.Shuffle.GLOBAL。另外也可以传入枚举变量设置shuffle级别
- **columns_list** (list[str],可选) - 指定从MindRecord文件中读取的数据列。默认值None读取所有列。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数。
- **shuffle** (Union[bool, Shuffle], 可选) - 每个epoch中数据混洗的模式支持传入bool类型与枚举类型进行指定默认值mindspore.dataset.Shuffle.GLOBAL。
如果`shuffle`为False则不混洗如果`shuffle`为True等同于将 `shuffle` 设置为mindspore.dataset.Shuffle.GLOBAL。
通过传入枚举变量设置数据混洗的模式:
- Shuffle.GLOBAL混洗文件和样本。
- Shuffle.FILES仅混洗文件。
- Shuffle.INFILE保持读入文件的序列仅混洗每个文件中的数据。
- **Shuffle.GLOBAL**:混洗文件和文件中的数据
- **Shuffle.FILES**:仅混洗文件。
- **Shuffle.INFILE**:保持读入文件的序列,仅混洗每个文件中的数据。
- **num_shards** (int, 可选): 分布式训练时将数据集划分成指定的分片数默认值None。指定此参数后`num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选): 分布式训练时指定使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **sampler** (Sampler,可选) - 指定从数据集中选取样本的采样器(默认为None下表中会展示不同配置的预期行为。当前此数据集仅支持以下采样器SubsetRandomSampler、PkSampler、RandomSampler、SequentialSampler和DistributedSampler。
- **padded_sample** (dict可选): 指定额外添加到数据集的样本,可用于在分布式训练时补齐分片数据,注意字典的键名需要与 `column_list` 指定的列名相同。
- **num_padded** (int可选) - 指定额外添加的数据集样本的数量。在分布式训练时可用于为数据集补齐样本,使得总样本数量可被 `num_shards` 整除。
- **num_samples** (int,可选) - 指定从数据集中读取的样本数默认值为None表示所有样本)
- **cache** (DatasetCache, 可选) - 数据缓存客户端实例用于加快数据集处理速度默认为None不使用缓存
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后 `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **sampler** (Sampler, 可选) - 指定从数据集中选取样本的采样器,默认值:None下表中会展示不同配置的预期行为。当前此数据集仅支持以下采样器SubsetRandomSampler、PkSampler、RandomSampler、SequentialSampler和DistributedSampler。
- **padded_sample** (dict, 可选): 指定额外添加到数据集的样本,可用于在分布式训练时补齐分片数据,注意字典的键名需要与 `column_list` 指定的列名相同。默认值None不添加样本。需要与 `num_padded` 参数同时使用。
- **num_padded** (int, 可选) - 指定额外添加的数据集样本的数量。在分布式训练时可用于为数据集补齐样本,使得总样本数量可被 `num_shards` 整除。默认值None不添加样本。需要与 `padded_sample` 参数同时使用。
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数。默认值None读取所有样本
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读`单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存
**异常:**
- **RuntimeError** - 参数 `dataset_files` 无效或不存在。
- **RuntimeError** - 参数 `num_parallel_workers` 超过最大线程数。
- **RuntimeError** - 指定了 `num_shards` ,但 `shard_id` 为None
- **RuntimeError** - 指定了 `shard_id` ,但 `num_shards` 为None
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
- **RuntimeError** - `dataset_files` 参数所指向的文件无效或不存在。
- **RuntimeError** - `num_parallel_workers` 参数超过最大线程数。
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
.. note:: 此数据集可以指定 `sampler` 参数,但 `sampler``shuffle` 是互斥的。下表展示了几种合法的输入参数及预期的行为。
.. note:: 此数据集可以指定参数 `sampler` ,但参数 `sampler`参数 `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数组合及预期的行为。
.. list-table:: 配置 `sampler``shuffle` 的不同组合得到的预期排序结果
:widths: 25 25 50
@ -50,19 +52,19 @@
* - None
- False
- 顺序排列
* - 参数 `sampler`
* - `sampler` 实例
- None
- 由 `sampler` 行为定义的顺序
* - 参数 `sampler`
* - `sampler` 实例
- True
- 不允许
* - 参数 `sampler`
* - `sampler` 实例
- False
- 不允许
**样例:**
>>> mind_dataset_dir = ["/path/to/mind_dataset_file"] # 此列表可以包含1个或多个MindRecord文件
>>> mind_dataset_dir = ["/path/to/mind_dataset_file"] # 此列表可以包含个或多个MindRecord文件
>>> dataset = ds.MindDataset(dataset_files=mind_dataset_dir)
.. include:: mindspore.dataset.Dataset.add_sampler.rst

View File

@ -3,33 +3,34 @@ mindspore.dataset.MnistDataset
.. py:class:: mindspore.dataset.MnistDataset(dataset_dir, usage=None, num_samples=None, num_parallel_workers=None, shuffle=None, sampler=None, num_shards=None, shard_id=None, cache=None)
用于读取和解析MNIST数据集的源数据集文件
读取和解析MNIST数据集的源文件构建数据集。
生成的数据集有两列: `[image, label]``image` 列的数据类型为uint8。`label` 列的数据为uint32的标量
生成的数据集有两列: `[image, label]``image` 列的数据类型为uint8。`label` 列的数据类型为uint32。
**参数:**
- **dataset_dir** (str) - 包含数据集文件的根目录路径。
- **usage** (str, 可选) - 指定数据集的子集,可取值为 `train``test``all`。使用 `train` 参数将会读取60,000个训练样本`test` 将会读取10,000个测试样本`all` 将会读取全部70,000个样本默认值为None即全部样本图片
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数可以小于数据集总数默认值为None,即全部样本图片)。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数默认值None即使用mindspore.dataset.config中配置的线程数
- **shuffle** (bool, 可选) - 是否混洗数据集默认为None下表中会展示不同配置的预期行为
- **sampler** (Sampler, 可选) - 指定从数据集中选取样本的采样器默认为None下表中会展示不同配置的预期行为
- **num_shards** (int, 可选) - 分布式训练时将数据集划分成指定的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 分布式训练时指定使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存能够加快数据加载和处理的速度默认值None即不使用缓存加速
- **usage** (str, 可选) - 指定数据集的子集,可取值为 'train'、'test' 或 'all'。
取值为'train'时将会读取60,000个训练样本取值为'test'时将会读取10,000个测试样本取值为'all'时将会读取全部70,000个样本。默认值None全部样本图片。
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数可以小于数据集总数。默认值None读取全部样本图片。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数。
- **shuffle** (bool, 可选) - 是否混洗数据集。默认值None下表中会展示不同参数配置的预期行为。
- **sampler** (Sampler, 可选) - 指定从数据集中选取样本的采样器默认值None下表中会展示不同配置的预期行为。
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后 `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读`单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存。
**异常:**
- **RuntimeError** - `dataset_dir` 路径下不包含数据文件。
- **RuntimeError** - `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError** - 同时指定了 `sampler``shuffle` 参数。
- **RuntimeError** - 同时指定了 `sampler``num_shards` 参数。
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
- **RuntimeError:** `dataset_dir` 路径下不包含数据文件。
- **RuntimeError:** `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError:** 同时指定了 `sampler``shuffle` 参数。
- **RuntimeError:** 同时指定了 `sampler``num_shards` 参数。
- **RuntimeError:** 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError:** 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **ValueError:** `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
.. note:: 此数据集可以指定 `sampler` 参数,但 `sampler``shuffle` 是互斥的。下表展示了几种合法的输入参数及预期的行为。
.. note:: 此数据集可以指定参数 `sampler` ,但参数 `sampler`参数 `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数组合及预期的行为。
.. list-table:: 配置 `sampler``shuffle` 的不同组合得到的预期排序结果
:widths: 25 25 50
@ -47,13 +48,13 @@ mindspore.dataset.MnistDataset
* - None
- False
- 顺序排列
* - 参数 `sampler`
* - `sampler` 实例
- None
- 由 `sampler` 行为定义的顺序
* - 参数 `sampler`
* - `sampler` 实例
- True
- 不允许
* - 参数 `sampler`
* - `sampler` 实例
- False
- 不允许
@ -70,7 +71,7 @@ mindspore.dataset.MnistDataset
MNIST手写数字数据集是NIST数据集的子集共有60,000个训练样本和10,000个测试样本。
以下为原始MNIST数据集结构,您可以将数据集解压成如下的文件结构并通过MindSpore的API进行读取。
以下为原始MNIST数据集的结构,您可以将数据集文件解压得到如下的文件结构并通过MindSpore的API进行读取。
.. code-block::

View File

@ -3,20 +3,24 @@ mindspore.dataset.NumpySlicesDataset
.. py:class:: mindspore.dataset.NumpySlicesDataset(data, column_names=None, num_samples=None, num_parallel_workers=1, shuffle=None, sampler=None, num_shards=None, shard_id=None)
由Python数据构建数据集。生成的数据集的列名和列类型取决于用户传入的Python数据。
由Python数据构建数据集。生成的数据集的列名和列类型取决于用户传入的Python数据。
**参数:**
- **data** (Union[list, tuple, dict]) - 输入的Python数据。支持的数据类型包括list、tuple、dict和其他NumPy格式。输入数据将沿着第一个维度切片并生成额外的行。如果输入是单个list则将生成一个数据列若是嵌套多个list则生成多个数据列。不建议通过这种方式加载大量的数据因为可能会在数据加载到内存时等待较长时间。
- **column_names** (list[str], 可选): 指定数据集生成的列名默认值为None。如果未指定列名称且当输入数据的类型是dict时输出列名称将被命名为dict的键名否则它们将被命名为column_0column_1...。
- **num_samples** (int, 可选): 指定从数据集中读取的样本数默认值为None所有样本
- **num_parallel_workers** (int, 可选): 指定读取数据的工作线程数默认值为1
- **shuffle** (bool, 可选): 是否混洗数据集。只有输入的 `data` 参数带有可随机访问属性__getitem__才可以指定该参数。默认值为None下表中会展示不同配置的预期行为
- **sampler** (Union[Sampler, Iterable], 可选): 指定从数据集中选取样本的采样器。只有输入的 `data` 参数带有可随机访问属性__getitem__才可以指定该参数默认值为None下表中会展示不同配置的预期行为
- **num_shards** (int, 可选): 分布式训练时将数据集划分成指定的分片数默认值None。指定此参数后`num_samples` 表示每个分片的最大样本数。需要输入 `data` 支持可随机访问才能指定该参数。
- **shard_id** (int, 可选): 分布式训练时指定使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **data** (Union[list, tuple, dict]) - 输入的Python数据。支持的数据类型包括list、tuple、dict和其他NumPy格式。
输入数据将沿着第一个维度切片并生成额外的行。如果输入是单个list则将生成一个数据列若是嵌套多个list则生成多个数据列。不建议通过这种方式加载大量的数据因为可能会在数据加载到内存时等待较长时间。
- **column_names** (list[str], 可选) - 指定数据集生成的列名默认值None不指定。
如果未指定该参数且当输入数据的类型是dict时输出列名称将被命名为dict的键名否则它们将被统一命名为column_0column_1...。
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数。默认值None所有样本。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数默认值1。
- **shuffle** (bool, 可选) - 是否混洗数据集。
只有输入的 `data` 参数带有可随机访问属性(`__getitem__`才可以指定该参数。默认值None下表中会展示不同配置的预期行为。
- **sampler** (Union[Sampler, Iterable], 可选) - 指定从数据集中选取样本的采样器。
只有输入的 `data` 参数带有可随机访问属性(`__getitem__`才可以指定该参数。默认值None下表中会展示不同配置的预期行为。
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后 `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
.. note:: 此数据集可以指定 `sampler` 参数,但 `sampler``shuffle` 是互斥的。下表展示了几种合法的输入参数及预期的行为。
.. note:: 此数据集可以指定参数 `sampler` ,但参数 `sampler`参数 `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数组合及预期的行为。
.. list-table:: 配置 `sampler``shuffle` 的不同组合得到的预期排序结果
:widths: 25 25 50
@ -34,29 +38,29 @@ mindspore.dataset.NumpySlicesDataset
* - None
- False
- 顺序排列
* - 参数 `sampler`
* - `sampler` 实例
- None
- 由 `sampler` 行为定义的顺序
* - 参数 `sampler`
* - `sampler` 实例
- True
- 不允许
* - 参数 `sampler`
* - `sampler` 实例
- False
- 不允许
**异常:**
- **RuntimeError** - `column_names` 列表的长度与数据的输出列表长度不匹配。
- **RuntimeError** - `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError** - 同时指定了 `sampler``shuffle`
- **RuntimeError** - 同时指定了 `sampler``num_shards`
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
- **RuntimeError** - `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError:** 同时指定了 `sampler``shuffle` 参数
- **RuntimeError:** 同时指定了 `sampler``num_shards` 参数
- **RuntimeError:** 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError:** 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **ValueError:** `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
**样例:**
>>> # 1) 输入的 `data` 参数类型为list
>>> # 1) 输入的 `data` 参数类型为list,指定输出列名为"column_1"
>>> data = [1, 2, 3]
>>> dataset = ds.NumpySlicesDataset(data=data, column_names=["column_1"])
>>>
@ -64,7 +68,7 @@ mindspore.dataset.NumpySlicesDataset
>>> data = {"a": [1, 2], "b": [3, 4]}
>>> dataset = ds.NumpySlicesDataset(data=data)
>>>
>>> # 3) 输入的 `data` 参数类型是由list组成的tuple或NumPy数组,每个元组分别生成一个输出列,共三个输出列
>>> # 3) 输入的 `data` 参数类型是由list组成的tuple每个元组分别生成一个输出列共三个输出列
>>> data = ([1, 2], [3, 4], [5, 6])
>>> dataset = ds.NumpySlicesDataset(data=data, column_names=["column_1", "column_2", "column_3"])
>>>

View File

@ -3,11 +3,11 @@ mindspore.dataset.PaddedDataset
.. py:class:: mindspore.dataset.PaddedDataset(padded_samples)
使用用户提供的填充数据创建数据集。可用于在分布式训练时给原始数据集添加样本,使数据集能平均分配给不同的分片。
由用户提供的填充数据构建数据集。可用于在分布式训练时给原始数据集添加样本,使数据集样本能平均分配给不同的分片。
**参数:**
- **padded_samples** (list(dict)): 用户提供的样本数据。
- **padded_samples** (list(dict)) - 用户提供的样本数据。
**异常:**

View File

@ -3,42 +3,49 @@ mindspore.dataset.TFRecordDataset
.. py:class:: mindspore.dataset.TFRecordDataset(dataset_files, schema=None, columns_list=None, num_samples=None, num_parallel_workers=None, shuffle=<Shuffle.GLOBAL: 'global'>, num_shards=None, shard_id=None, shard_equal_rows=False, cache=None)
读取和解析以TFData格式存储的数据集文件作为源数据集。生成的数据集的列名和列类型取决于TFRecord文件中的保存的列名与类型。
读取和解析TFData格式的数据文件构建数据集。生成的数据集的列名和列类型取决于TFRecord文件中的保存的列名与类型。
**参数:**
- **dataset_files** (Union[str, list[str]]) - 数据集文件路径支持单文件路径字符串、多文件路径字符串列表或可被glob库模式匹配的字符串文件列表将在内部进行字典排序。
- **schema** (Union[str, Schema],可选) - 读取模式策略用于指定读取数据列的数据类型、数据维度等信息。支持传入JSON文件或 `Schema` 对象的路径默认为None将使用TFData文件中的元数据构造 `Schema` 对象)。
- **columns_list** (list[str],可选) - 指定从TFRecord文件中读取的数据列默认为None读取所有列
- **num_samples** (int可选) - 指定从数据集中读取的样本数默认为None。如果 `num_samples` 为None并且numRows字段由参数 `schema` 定义)不存在,则读取所有数据集;如果 `num_samples` 为None并且numRows字段由参数 `schema` 定义的值大于0则读取numRows条数据如果 `num_samples` 和numRows字段由参数 `schema` 定义的值都大于0仅有参数 `num_samples` 生效且读取给定数量的数据。
- **num_parallel_workers** (int可选) - 指定读取数据的工作线程数默认值None即使用mindspore.dataset.config中配置的线程数
- **shuffle** (Union[bool, Shuffle level], 可选) - 每个epoch中数据混洗的模式默认为为mindspore.dataset.Shuffle.GLOBAL。如果为False则不混洗如果为True等同于将 `shuffle` 设置为mindspore.dataset.Shuffle.GLOBAL。另外也可以传入枚举变量设置shuffle级别
- **schema** (Union[str, Schema], 可选) - 读取模式策略,用于指定读取数据列的数据类型、数据维度等信息。
支持传入JSON文件路径或 mindspore.dataset.Schema 构造的对象。默认值None不指定。
- **columns_list** (list[str], 可选) - 指定从TFRecord文件中读取的数据列。默认值None读取所有列。
- **num_samples** (int, 可选) - 指定从数据集中读取的样本数默认值None读取全部样本。
- Shuffle.GLOBAL混洗文件和样本。
- Shuffle.FILES仅混洗文件。
- 如果 `num_samples` 为None并且numRows字段由参数 `schema` 定义)不存在,则读取所有数据集;
- 如果 `num_samples` 为None并且numRows字段由参数 `schema` 定义的值大于0则读取numRows条数据
- 如果 `num_samples` 和numRows字段由参数 `schema` 定义的值都大于0此时仅有参数 `num_samples` 生效且读取给定数量的数据。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数。
- **shuffle** (Union[bool, Shuffle], 可选) - 每个epoch中数据混洗的模式支持传入bool类型与枚举类型进行指定默认值mindspore.dataset.Shuffle.GLOBAL。
如果`shuffle`为False则不混洗如果`shuffle`为True等同于将 `shuffle` 设置为mindspore.dataset.Shuffle.GLOBAL。
通过传入枚举变量设置数据混洗的模式:
- **num_shards** (int, 可选): 分布式训练时将数据集划分成指定的分片数默认值None。指定此参数后`num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选): 分布式训练时指定使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **shard_equal_rows** (bool可选) 分布式训练时为所有分片获取等量的数据行数默认为False。如果 `shard_equal_rows` 为False则可能会使得每个分片的数据条目不相等从而导致分布式训练失败。因此当每个TFRecord文件的数据数量不相等时建议将此参数设置为True。注意只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 数据缓存客户端实例用于加快数据集处理速度默认为None不使用缓存
- **Shuffle.GLOBAL**:混洗文件和样本。
- **Shuffle.FILES**:仅混洗文件。
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **shard_equal_rows** (bool, 可选) - 分布式训练时为所有分片获取等量的数据行数。默认值False。如果 `shard_equal_rows` 为False则可能会使得每个分片的数据条目不相等从而导致分布式训练失败。因此当每个TFRecord文件的数据数量不相等时建议将此参数设置为True。注意只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读 `单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存。
**异常:**
- **RuntimeError** - 参数 `dataset_files` 无效或不存在。
- **RuntimeError** - 参数 `num_parallel_workers` 超过最大线程数。
- **RuntimeError** - 指定了 `num_shards` ,但 `shard_id` 为None
- **RuntimeError** - 指定了 `shard_id` ,但 `num_shards` 为None
- **ValueError** - 参数 `shard_id` 无效小于0或者大于等于 `num_shards` )。
- **RuntimeError** - `dataset_files` 参数所指向的文件无效或不存在。
- **RuntimeError** - `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数
- **ValueError** - `shard_id` 参数值错误小于0或者大于等于 `num_shards` )。
**样例:**
>>> from mindspore import dtype as mstype
>>>
>>> tfrecord_dataset_dir = ["/path/to/tfrecord_dataset_file"] # 此列表可以包含1个或多个TFRecord文件
>>> tfrecord_dataset_dir = ["/path/to/tfrecord_dataset_file"] # 此列表可以包含个或多个TFRecord文件
>>> tfrecord_schema_file = "/path/to/tfrecord_schema_file"
>>>
>>> # 1) 从tfrecord_dataset_dir路径的文件读取数据集。
>>> # 由于未指定Schema则将TFRecord文件数据的第一行的元数据将用作Schema。
>>> # 由于未指定Schema则将解析TFRecord文件数据的第一行的元数据将用作Schema。
>>> dataset = ds.TFRecordDataset(dataset_files=tfrecord_dataset_dir)
>>>
>>> # 2) 用户使用自定义的Schema从tfrecord_dataset_dir路径的文件读取数据集。

View File

@ -3,32 +3,34 @@
.. py:class:: mindspore.dataset.TextFileDataset(dataset_files, num_samples=None, num_parallel_workers=None, shuffle=<Shuffle.GLOBAL: 'global'>, num_shards=None, shard_id=None, cache=None)
用于读取和解析文本格式的文件作为源数据集。生成的数据集有一个数据列: `[text]` 类型为string。
读取和解析文本文件构建数据集。生成的数据集有一个数据列: `[text]` 类型为string。
**参数:**
- **dataset_files** (Union[str, list[str]]) - 数据集文件路径支持单文件路径字符串、多文件路径字符串列表或可被glob库模式匹配的字符串文件列表将在内部进行字典排序。
- **num_samples** (int可选) - 指定从数据集中读取的样本数默认为None即读取所有样本
- **num_parallel_workers** (int可选) - 指定读取数据的工作线程数(默认值None即使用mindspore.dataset.config中配置的线程数
- **shuffle** (Union[bool, Shuffle level], 可选) - 每个epoch中数据混洗的模式默认为为mindspore.dataset.Shuffle.GLOBAL。如果为False则不混洗如果为True等同于将 `shuffle` 设置为mindspore.dataset.Shuffle.GLOBAL。另外也可以传入枚举变量设置shuffle级别
- **num_samples** (int可选) - 指定从数据集中读取的样本数。默认值None读取所有样本。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数。
- **shuffle** (Union[bool, Shuffle], 可选) - 每个epoch中数据混洗的模式支持传入bool类型与枚举类型进行指定默认值mindspore.dataset.Shuffle.GLOBAL。
如果`shuffle`为False则不混洗如果`shuffle`为True等同于将 `shuffle` 设置为mindspore.dataset.Shuffle.GLOBAL。
通过传入枚举变量设置数据混洗的模式:
- Shuffle.GLOBAL混洗文件和样本。
- Shuffle.FILES仅混洗文件。
- **Shuffle.GLOBAL**:混洗文件和样本。
- **Shuffle.FILES**:仅混洗文件。
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 数据缓存客户端实例用于加快数据集处理速度默认为None不使用缓存
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后, `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读 `单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存
**异常:**
- **RuntimeError** - `dataset_files` 所指的文件无效或不存在。
- **RuntimeError** - `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError** - `dataset_files` 参数所指的文件无效或不存在。
- **RuntimeError** - `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
**样例:**
>>> text_file_dataset_dir = ["/path/to/text_file_dataset_file"] # # 此列表可以包含1个或多个文本文件
>>> text_file_dataset_dir = ["/path/to/text_file_dataset_file"] # 此列表可以包含一个或多个文本文件
>>> dataset = ds.TextFileDataset(dataset_files=text_file_dataset_dir)
.. include:: mindspore.dataset.Dataset.rst

View File

@ -3,48 +3,53 @@ mindspore.dataset.VOCDataset
.. py:class:: mindspore.dataset.VOCDataset(dataset_dir, task='Segmentation', usage='train', class_indexing=None, num_samples=None, num_parallel_workers=None, shuffle=None, decode=False, sampler=None, num_shards=None, shard_id=None, cache=None, extra_metadata=False)
用于读取和解析VOC数据集的源数据集文件。
根据给定的task配置数据集会生成不同的输出列
- task = `Detection`,输出列: `[image, dtype=uint8]`, `[bbox, dtype=float32]`, `[label, dtype=uint32]`, `[difficult, dtype=uint32]`, `[truncate, dtype=uint32]`
- task = `Segmentation`,输出列: `[image, dtype=uint8]`, `[target,dtype=uint8]`
读取和解析VOC数据集的源文件构建数据集。
**参数:**
- **dataset_dir** (str): 包含数据集文件的根目录的路径。
- **task** (str, 可选): 指定读取VOC数据的任务类型现在只支持 `Segmentation``Detection` (默认值 `Segmentation` )。
- **usage** (str, 可选): 指定数据集的子集(默认值 `train` )。如果 `task` 参数为 `Segmentation` ,则将在./ImageSets/Segmentation/usage + ".txt"中加载数据集图像和标注信息;如果 `task` 参数为 `Detection` ,则将在./ImageSets/Main/usage + ".txt"中加载数据集图像和标注信息;如果未设置任务和用法,默认将加载./ImageSets/Segmentation/train.txt中的数据集图像和标注信息。
- **class_indexing** (dict, 可选): 指定标签名称到类标签的映射要求映射规则为str到int仅在 `Detection` 任务中有效默认值None文件夹名称将按字母顺序排列每类都有一个唯一的索引从0开始)。
- **num_samples** (int, 可选): 指定从数据集中读取的样本数默认值为None所有图像样本
- **num_parallel_workers** (int, 可选): 指定读取数据的工作线程数默认值None即使用mindspore.dataset.config中配置的线程数
- **shuffle** (bool, 可选): 是否混洗数据集默认为None下表中会展示不同配置的预期行为
- **decode** (bool, 可选): 是否对读取的图像进行解码操作默认值为False
- **sampler** (Sampler, 可选): 指定从数据集中选取样本的采样器默认为None下表中会展示不同配置的预期行为
- **num_shards** (int, 可选): 分布式训练时将数据集划分成指定的分片数默认值None。指定此参数后 `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选): 分布式训练时指定使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选): 数据缓存客户端实例用于加快数据集处理速度默认为None不使用缓存
- **extra_metadata** (bool, 可选): 用于指定是否额外输出一列数据用于表示图像元信息。如果为True则将额外输出一列数据名为 `[_meta-filename, dtype=string]` 默认值为False
- **task** (str, 可选): 指定读取VOC数据的任务类型现在只支持'Segmentation'和'Detection'。默认值:'Segmentation'。
- **usage** (str, 可选): 指定数据集的子集,默认值:'train'。
- 如果 'task' 的值为 'Segmentation',则读取 'ImageSets/Segmentation/' 目录下定义的图片和label信息
- 如果 'task' 的值为 'Detection' ,则读取 'ImageSets/Main/' 目录下定义的图片和label信息。
- **class_indexing** (dict, 可选): 指定一个从label名称到label索引的映射要求映射规则为string到int。索引值从0开始并且要求每个label名称对应的索引值唯一。
仅在 'Detection' 任务中有效。默认值None不指定。
- **num_samples** (int, 可选): 指定从数据集中读取的样本数。默认值None所有图像样本。
- **num_parallel_workers** (int, 可选) - 指定读取数据的工作线程数。默认值None使用mindspore.dataset.config中配置的线程数。
- **shuffle** (bool, 可选) - 是否混洗数据集。默认值None下表中会展示不同参数配置的预期行为。
- **decode** (bool, 可选) - 是否对读取的图片进行解码操作默认值False不解码。
- **sampler** (Sampler, 可选) - 指定从数据集中选取样本的采样器默认值None下表中会展示不同配置的预期行为。
- **num_shards** (int, 可选) - 指定分布式训练时将数据集进行划分的分片数默认值None。指定此参数后 `num_samples` 表示每个分片的最大样本数。
- **shard_id** (int, 可选) - 指定分布式训练时使用的分片ID号默认值None。只有当指定了 `num_shards` 时才能指定此参数。
- **cache** (DatasetCache, 可选) - 单节点数据缓存服务,用于加快数据集处理,详情请阅读`单节点数据缓存 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/cache.html>`_ 。默认值None不使用缓存。
- **extra_metadata** (bool, 可选) - 用于指定是否额外输出一个数据列用于表示图片元信息。如果为True则将额外输出一个名为 `[_meta-filename, dtype=string]` 的数据列默认值False。
根据给定的`task`配置,生成数据集具有不同的输出列:
- `task` = 'Detection',输出列: `[image, dtype=uint8]`, `[bbox, dtype=float32]`, `[label, dtype=uint32]`, `[difficult, dtype=uint32]`, `[truncate, dtype=uint32]`
- `task` = 'Segmentation',输出列: `[image, dtype=uint8]`, `[target, dtype=uint8]`
**异常:**
- **RuntimeError** - `dataset_dir` 不包含任何数据文件。
- **RuntimeError** - `num_parallel_workers` 超过系统最大线程数。
- **RuntimeError** - 标注的xml文件格式异常或无效。
- **RuntimeError** - 标注的xml文件缺失 `object` 属性。
- **RuntimeError** - 标注的xml文件缺失 `bndbox` 属性。
- **RuntimeError** - 同时指定了 `sampler``shuffle`
- **RuntimeError** - 同时指定了 `sampler``num_shards`
- **RuntimeError** - `dataset_dir` 路径下不包含任何数据文件。
- **RuntimeError** - `num_parallel_workers` 参数超过系统最大线程数。
- **RuntimeError** - 读取的xml文件格式异常或无效。
- **RuntimeError** - 读取的xml文件缺失 `object` 属性。
- **RuntimeError** - 读取的xml文件缺失 `bndbox` 属性。
- **RuntimeError** - 同时指定了 `sampler``shuffle` 参数
- **RuntimeError** - 同时指定了 `sampler``num_shards` 参数
- **RuntimeError** - 指定了 `num_shards` 参数,但是未指定 `shard_id` 参数。
- **RuntimeError** - 指定了 `shard_id` 参数,但是未指定 `num_shards` 参数。
- **ValueError** - 指定的任务不为'Segmentation'或'Detection'。
- **ValueError** - 指定任务为'Segmentation'时class_indexing不为None。
- **ValueError** - 与usage相关的txt文件不存在。
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
- **ValueError** - 指定任务为'Segmentation'时, `class_indexing` 参数不为None。
- **ValueError** - 与 `usage` 参数相关的txt文件不存在。
- **ValueError** - `shard_id` 参数错误小于0或者大于等于 `num_shards` )。
.. note::
- 当指定 `extra_metadata` 为True时除非显式使用rename算子以删除元信息列明的前缀('_meta-'),否则迭代的数据行中不会出现'[_meta-filename, dtype=string]'列。
- 此数据集可以指定 `sampler` 参数,但 `sampler``shuffle` 是互斥的。下表展示了几种合法的输入参数及预期的行为。
- 当参数 `extra_metadata` 为True时还需使用 `rename` 操作删除额外数据列'_meta-filename'的前缀'_meta-'
否则迭代得到的数据行中不会出现此额外数据列。
- 此数据集可以指定参数 `sampler` ,但参数 `sampler` 和参数 `shuffle` 的行为是互斥的。下表展示了几种合法的输入参数组合及预期的行为。
.. list-table:: 配置 `sampler``shuffle` 的不同组合得到的预期排序结果
:widths: 25 25 50
@ -62,13 +67,13 @@ mindspore.dataset.VOCDataset
* - None
- False
- 顺序排列
* - 参数 `sampler`
* - `sampler` 实例
- None
- 由 `sampler` 行为定义的顺序
* - 参数 `sampler`
* - `sampler` 实例
- True
- 不允许
* - 参数 `sampler`
* - `sampler` 实例
- False
- 不允许

View File

@ -7518,7 +7518,7 @@ class CelebADataset(MappableDataset):
CelebA has large diversities, large quantities, and rich annotations, including
* 10,177 number of identities,
* 202,599 number of face images, and
* 202,599 number of face images,
* 5 landmark locations, 40 binary attributes annotations per image.
The dataset can be employed as the training and test sets for the following computer