DataLoader

class DataLoader(dataset, sampler=None, transform=None, collator=None, num_workers=0, timeout=0, timeout_event=raise_timeout_error, divide=False, preload=False)[源代码]

可用于在给定数据集上遍历并取得数据。

DataLoader 将数据集与 Sampler, TransformCollator 组合在一起,使其可以灵活地从数据集中连续获取小批量数据。

参数
  • dataset (Dataset) – 需要从中分批加载的数据集。

  • sampler (Optional[Sampler]) – 定义从数据集中采样数据的策略。

  • transform (Optional[Transform]) – 定义抽样批次的转换策略。 默认:None

  • collator (Optional[Collator]) – 定义了转换批次的合并策略。 默认:None

  • num_workers (int) – 加载、转换和整理批次的子进程数量。 0 表示使用单进程。 默认:0

  • timeout (int) – 如果为正,则表示从 worker 那里收集批次的超时值(秒)。 默认:0

  • timeout_event (Callable) – 超时触发的回调函数,默认引发运行时错误。

  • divide (bool) – 定义多进程模式下的并行策略。 True 表示一个批次被分成 num_workers 块,worker 将并行处理这些块。 False 表示不同的子进程会处理不同的批次。 默认:False

  • preload (bool) – 定义是否应用 dataloader 的预加载策略,并在 kernel 执行时并行化 host2device 以提高加载速度。 默认设置为 False,输出将从 np.ndarry 更改为 dtype 张量。 预加载支持的 dtype 是 int,float,list[int,float],tuple[int,float],不支持其他类型。