dataloader 初步解读

本文总结了PyTorch中DataLoader的关键概念,包括:1) Dataset作为样本列表;2) 数据采样方式,如shuffle和drop_last参数;3) 并行处理的线程数(workers);4) 数据拼接方法(collate函数);5) batchsize。DataLoaderIter在DataLoader中负责数据导入,重点关注多进程与单进程的选择以及不同进程的数据读取策略。
摘要由CSDN通过智能技术生成

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,
           
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值