forked from mindspore-Ecosystem/mindspore
!28389 Update chinese API doc
Merge pull request !28389 from luoyang/code_docs_chinese
This commit is contained in:
commit
6f9541d02c
|
@ -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::
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 Dataset(CelebA)数据集是一个大规模的人脸属性数据集,拥有超过20万名人图像,每个图像都有40个属性标注。此数据集包含了大量不同姿态、各种背景的人脸图像,种类丰富、数量庞大、标注充分。数据集总体包含:
|
||||
CelebFaces Attributes Dataset(CelebA)数据集是一个大规模的人脸属性数据集,拥有超过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::
|
||||
|
||||
|
|
|
@ -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::
|
||||
|
||||
|
|
|
@ -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::
|
||||
|
||||
|
|
|
@ -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 Context(COCO)是一个大型数据集,该数据集专门为目标检测,语义分割和字幕生成任务而设计。它拥有330K张图像(标记数量大于200K个)、1500000个目标实例、80个目标类别、91个对象类别、每张图片均有5个字幕、带关键点标注的人有250000个。与流行的ImageNet数据集相比,COCO的类别较少,但每个类别中的图片样本非常多。
|
||||
|
||||
您可以解压缩原始COCO-2017数据集文件如下目录结构,并通过MindSpore的API读取。
|
||||
您可以解压缩原始COCO-2017数据集文件得到如下目录结构,并通过MindSpore的API读取。
|
||||
|
||||
.. code-block::
|
||||
|
||||
|
|
|
@ -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
|
||||
- 不允许
|
||||
|
||||
|
|
|
@ -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::
|
||||
|
||||
|
|
|
@ -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的数据
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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::
|
||||
|
||||
|
|
|
@ -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_0,column_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_0,column_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"])
|
||||
>>>
|
||||
|
|
|
@ -3,11 +3,11 @@ mindspore.dataset.PaddedDataset
|
|||
|
||||
.. py:class:: mindspore.dataset.PaddedDataset(padded_samples)
|
||||
|
||||
使用用户提供的填充数据创建数据集。可用于在分布式训练时给原始数据集添加样本,使数据集能平均分配给不同的分片。
|
||||
由用户提供的填充数据构建数据集。可用于在分布式训练时给原始数据集添加样本,使数据集样本能平均分配给不同的分片。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **padded_samples** (list(dict)): 用户提供的样本数据。
|
||||
- **padded_samples** (list(dict)) - 用户提供的样本数据。
|
||||
|
||||
**异常:**
|
||||
|
||||
|
|
|
@ -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路径的文件读取数据集。
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
- 不允许
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue