DataLoader类实现自定义数据集

用torch.utils.data.DataLoader类可以构建带有批次的数据集

DataLoader类的功能非常强大没伴随的参数也比较复杂,具体定义如下:

class DataLoader(dataset,
                 batch_size=1,
                 shuffle = False,
                 sampler= None,
                 num_workers=0,
                 collate_fn=,
                 pin_memory=False,
                 drop_last=False,
                 timeout=0,
                 worker_init_fn=None,
                 multiprocessing_context=None)

具体参数:

dataset:待加载的数据集

batch_size:每批次加载的样本数量,默认是1

shuffle:是否把样本的顺序打乱。默认是True,表示不打乱样本的顺序

sampler:接收一个采样器对象,用于按照指定的样本提取策略从数据集中提取样本。如果指定,则忽略shuffle参数。

num_workers:设置加载数据的额外进程数量。默认是0,表示不额外启动进程来加载数据,直接使用主进程对数据进行加载。

collate_fn:接受一个自定义函数。当该参数不为None时,系统会先从数据集中取出数据,然后将数据传入collate_fn中,由collate_fn参数所指向的函数对数据进行二次加工。collate_fn常用于 测试和训练场景中对同一个数据集进行数据提取。

pin_memory:在数据返回前,是否将数据复制到CUDA中,默认值为False。、

drop_last:是否丢弃最后数据。默认值时False,表示不丢弃。在样本总数不能被batch size整除的情况下,如果该值为True,则丢弃最后一个满足一个批次数量的数据;如果该值为False,则将最后不足一个批次数量的数据返回。

timeout:读取数据的超时时间,默认值为0,当超过设置时间还没读到数据时,系统默认就会报错

worker_init_fn:每个子进程的初始化函数,在加载数据之前运行

 multiprocessing_context:多进程处理的配置参数

你可能感兴趣的:(深度学习,人工智能)