【Torch】Dataloader & 全面详实概念理解

时间:2025-03-30 20:14:52
  • dataset (Dataset) :加载数据的数据集。
  • batch_size (int, optional) : 每个batch加载多少个样本(默认: 1)。
  • shuffle (bool, optional) :设置为True时会在每个epoch重新打乱数据(默认: False)。
  • sampler (Sampler, optional) : 定义从数据集中提取样本的策略,即生成index的方式,可以顺序也可以乱序。
  • num_workers (int, optional): 用多少个子进程加载数据。0:数据将在主进程中加载(默认: 0)
  • collate_fn (callable, optional) :将一个batch的数据和标签进行合并操作。
  • pin_memory (bool, optional) :设置pin_memory=True,则意味着生成的Tensor数据最开始是属于内存中的锁页内存,这样将内存的Tensor转义到GPU的显存就会更快一些。
  • drop_last (bool, optional):如果数据集大小不能被batch size整除,则设置为True后可删除最后一个不完整的batch。如果设为False并且数据集的大小不能被batch size整除,则最后一个batch将更小。(默认: False)
  • timeout:用来设置数据读取的超时时间的,但超过这个时间还没读取到数据的话就会报错。
  • worker_init_fn(callable, optional):如果不是None,将在播种之后和数据加载之前,对每个worker子进程使用worker id (int in [0, num_workers - 1])作为输入调用。(默认值:None)