dataloader 初步解读
https://blog.csdn.net/u014380165/article/details/79058479
主要参考链接。
主要的参数介绍写在代码块儿里面,方便阅读。
class DataLoader(object):
"""
Data loader. Combines a dataset and a sampler, and provides
single- or multi-process iterators over the dataset.
Arguments:
dataset (Dataset): 主要导入的数据库,一般是列表的形式
batch_size (int, optional): batch_size的大小,即一个batch_size的样本个数
shuffle (bool, optional):是否打乱数据,至于是以batch_size为单位打乱,还是 以一个样本为单位,没有搞明白,目前感觉也不是很重要。
sampler (Sampler, optional): 从dataset抓取样本的方式(或者叫策略),如果需要定义,shuffle必须是False。
batch_sampler (Sampler, optional):与sample类似,是一个batch个数.互斥于batch_sizye, shuffle,sampler, and drop_last.
num_workers (int, optional): 导入数据用到的进程数,默认0主进程。
collate_fn (callable, optional):将样本列表合并成一个最小的batchsize。.
pin_memory (bool, optional):定义为True,会在返回q前,将这个数据输入到cuda里面。.
drop_last (bool, optional): 样本数不能整除batch_size的情况下,最后一个batch可能达不到batchsize的数目要求,true丢弃最后一个,反之保留。
timeout (numeric, optional): if positive, the timeout value for collecting a batch
from workers. Should always be non-negative. (default: 0)
worker_init_fn (callable, optional): 如果非空,在读入数据和导入数据中间,将线程的ID作为输入??不太懂。。。。
"""
def __init__(self, dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None,
num_workers=0, collate_fn=default_collate, pin_memory=False, drop_last=False,