在训练神经网络时,最好对一个batch的数据进行操作,同时还需要对数据进行shuffle和并行加速等。对此,Pytorch提供了DataLoader帮助实现这些功能。
DataLoader的函数定义如下:
DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, num_workers=0, collate_fn=default_collate, pin_memory=False, drop_last=False)
dataset:加载数据的数据集(Dataset对象)
batch_size:每个batch加载多少个样本
shuffle::是否将数据打乱, 设置为True
时会在每个epoch重新打乱数据(默认: False).
sampler: 定义从数据集中提取样本的策略。
num_workers:使用多少个子进程加载数据,0代表不使用多进程,在主进程中加载
collate_fn: 如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可
pin_memory:是否将数据保存在pin memory区,pin memory中的数据转到GPU会快一些
drop_last:dataset中的数据个数可能不是batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃(默认:False)
原文:https://www.cnblogs.com/songyuejia1997/p/14170176.html