You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

mindspore.dataset.Dataset.rst 4.6 kB

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