mindspore.dataset.dataloader.DataLoader ======================================= .. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/br_base/resource/_static/logo_source.svg :target: https://gitee.com/mindspore/mindspore/blob/br_base/docs/api/api_python/dataset_dataloader/mindspore.dataset.dataloader.DataLoader.rst :alt: 查看源文件 .. py:class:: mindspore.dataset.dataloader.DataLoader(dataset, batch_size=1, shuffle=None, sampler=None, batch_sampler=None, num_workers=0, collate_fn=None, pin_memory=False, drop_last=False, timeout=0., worker_init_fn=None, multiprocessing_context=None, generator=None, *, prefetch_factor=None, persistent_workers=False, in_order=True) 数据加载器为给定的数据集提供迭代器。 它支持可随机访问和可迭代类型的数据集,支持单进程或多进程数据加载。 参数: - **dataset** (Dataset) - 要从中加载数据的数据集。 - **batch_size** (Union[int, None], 可选) - 每个 mini-batch 的样本数量。如果为 ``None`` ,则不进行批处理。默认值: ``1`` 。 - **shuffle** (Union[bool, None], 可选) - 是否打乱数据集。默认值: ``None`` ,不打乱。 - **sampler** (Union[Sampler, Iterable, None], 可选) - 要使用的采样器。默认值: ``None`` ,如果 `shuffle` 为 ``False`` 则使用 ``SequentialSampler`` ,否则使用 ``RandomSampler`` 。 - **batch_sampler** (Union[Sampler[List], Iterable[List], None], 可选) - 要使用的批采样器。默认值: ``None`` ,如果 `batch_size` 不为 ``None`` 则生成内置 ``BatchSampler`` 。 - **num_workers** (int, 可选) - 执行数据加载的工作进程数。默认值: ``0`` ,使用主进程加载。 - **collate_fn** (Union[_CollateFnType, None], 可选) - 要使用的整理函数。默认值: ``None`` ,使用默认整理函数。 - **pin_memory** (bool, 可选) - 是否将数据拷贝到锁页内存。默认值: ``False`` 。 - **drop_last** (bool, 可选) - 是否丢弃最后一个不完整的 Batch 。默认值: ``False`` 。 - **timeout** (float, 可选) - 等待工作进程处理数据的超时时间。默认值: ``0.`` ,永久等待。 - **worker_init_fn** (Union[Callable[[int], None], None], 可选) - 要使用的工作进程初始化函数。默认值: ``None`` ,不执行任何操作。 - **multiprocessing_context** (Union[multiprocessing.context.BaseContext, str, None], 可选) - 要使用的多进程上下文。默认值: ``None`` ,使用 ``mindspore.multiprocessing`` 。 - **generator** (Union[Generator, None], 可选) - 要使用的随机生成器。默认值: ``None`` ,使用默认生成器。 关键字参数: - **prefetch_factor** (Union[int, None], 可选) - 工作进程预取样本数。默认值: ``None`` ,当 `num_workers` 大于 ``0`` 时使用 ``2`` 。 - **persistent_workers** (bool, 可选) - 是否在迭代数据集完成后保持工作进程存活。默认值: ``False`` 。 - **in_order** (bool, 可选) - 在多进程加载时是否保持样本顺序。默认值: ``True`` 。