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

54 lines
4.5 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

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

.. py:method:: apply(apply_func)
对数据集对象执行给定操作函数。
**参数:**
**apply_func** (function):数据集处理函数,要求该函数的输入是一个 `Dataset` 对象,返回的是处理后的 `Dataset` 对象。
**返回:**
执行了给定操作函数的数据集对象。
**异常:**
- **TypeError** - `apply_func` 的类型不是函数。
- **TypeError** - `apply_func` 未返回 `Dataset` 对象。
.. py:method:: batch(batch_size, drop_remainder=False, num_parallel_workers=None, per_batch_map=None, input_columns=None, output_columns=None, column_order=None, pad_info=None, python_multiprocessing=False, max_rowsize=16)
将数据集中连续 `batch_size` 条数据合并为一个批处理数据。
`batch` 操作要求每列中的数据具有相同的shape。如果指定了参数 `per_batch_map` ,该参数将作用于批处理后的数据。
.. note::
执行 `repeat``batch` 操作的先后顺序,会影响批处理数据的数量及 `per_batch_map` 的结果。建议在 `batch` 操作完成后执行 `repeat` 操作。
**参数:**
- **batch_size** (Union[int, Callable]) - 指定每个批处理数据包含的数据条目。
如果 `batch_size` 为整型,则直接表示每个批处理数据大小;
如果为可调用对象则可以通过自定义行为动态指定每个批处理数据大小要求该可调用对象接收一个参数BatchInfo返回一个整形代表批处理大小用法请参考样例3
- **drop_remainder** (bool, 可选) - 当最后一个批处理数据包含的数据条目小于 `batch_size`是否将该批处理丢弃不传递给下一个操作。默认值False不丢弃。
- **num_parallel_workers** (int, 可选) - 指定 `batch` 操作的并发进程数/线程数(由参数 `python_multiprocessing` 决定当前为多进程模式或多线程模式)。
默认值None使用mindspore.dataset.config中配置的线程数。
- **per_batch_map** (callable, 可选) - 可调用对象,以(list[Tensor], list[Tensor], ..., BatchInfo)作为输入参数,处理后返回(list[Tensor], list[Tensor],...)作为新的数据列。
输入参数中每个list[Tensor]代表给定数据列中的一批Tensorlist[Tensor]的个数应与 `input_columns` 中传入列名的数量相匹配,
在返回的(list[Tensor], list[Tensor], ...)中list[Tensor]的个数应与输入相同,如果输出列数与输入列数不一致,则需要指定 `output_columns`
该可调用对象的最后一个输入参数始终是BatchInfo用于获取数据集的信息用法参考样例2
- **input_columns** (Union[str, list[str]], 可选):指定 `batch` 操作的输入数据列。
如果 `per_batch_map` 不为None列表中列名的个数应与 `per_batch_map` 中包含的列数匹配。默认值None不指定。
- **output_columns** (Union[str, list[str]], 可选) - 指定 `batch` 操作的输出数据列。如果输入数据列与输入数据列的长度不相等,则必须指定此参数。
此列表中列名的数量必须与 `per_batch_map` 方法的返回值数量相匹配。默认值None输出列将与输入列具有相同的名称。
- **column_order** (Union[str, list[str]], 可选) - 指定传递到下一个数据集操作的数据列顺序。
如果 `input_column` 长度不等于 `output_column` 长度,则此参数必须指定。
注意:列名不限定在 `input_columns``output_columns` 中指定的列也可以是上一个操作输出的未被处理的数据列详细可参阅使用样例4。默认值None按照原输入顺序排列。
- **pad_info** (dict, 可选) - 对给定数据列进行填充。通过传入dict来指定列信息与填充信息例如 `pad_info={"col1":([224,224],0)}`
则将列名为"col1"的数据列扩充到shape为(224, 224)的Tensor缺失的值使用0填充。默认值None不填充。
- **python_multiprocessing** (bool, 可选) - 启动Python多进程模式并行执行 `per_batch_map` 。如果 `per_batch_map` 的计算量很大此选项可能会很有用。默认值False不启用多进程。
- **max_rowsize** (int, 可选) - 指定在多进程之间复制数据时,共享内存分配的最大空间,仅当 `python_multiprocessing` 为True时该选项有效。默认值16单位为MB。
**返回:**
Dataset `batch` 操作后的数据集对象。