Pytorch教程

【参数】pytorch-DataLoader参数详解

作者 : 老饼 发表日期 : 2023-11-17 09:36:01 更新日期 : 2024-01-19 08:34:21
本站原创文章,转载请说明来自《老饼讲解-深度学习》www.bbbdata.com



本文展示pytorch中DataLoader的全部入参,

并对每个入参进行简要说明,以方便使用时进行查阅





一、pytorch-DataLoader参数说明    



本节展示DataLoader的全部入参,并对每个入参进行简要说明



1.DataLoader参数说明


DataLoader的完整入参如下:

DataLoader(dataset, batch_size=1, shuffle=False, sampler=None,
           batch_sampler=None, num_workers=0, collate_fn=None,
           pin_memory=False, drop_last=False, timeout=0,
           worker_init_fn=None, *, prefetch_factor=2,
           persistent_workers=False)

各个参数的意义如下:

1. dataset                 :数据集

2. batch_size            :每批数据的包含的样本个数,默认为1

3. shuffle                  :是否将dataSet的数据打乱再装载到DataLoader,为True时则打乱

4. sampler                :采样器,用于指定DataLoader如何在DataSet中采样

                                     在设定了sampler时,shuffle是无效的

5. batch_sampler     :批采样器,用于指定DataLoader每批数据具体是如何在DataSet中采样的,

                                     在设定了batch_sampler时,sampler与shuffle是无效的

6. num_workers       :数据加载的子流程数量

                                     0表示将在主进程中加载数据(默认值:0)

7. collate_fn             :批数据装载时的回调函数,collate_fn 的入参为当前批的数据,出参为返回的批数据

8. pin_memory        :是否锁定内存

9. drop_last             :是否删掉最后一个数据批次

                                    例如101个样本,每批10个,那最后一批只有1个样本,drop_last为True时,将丢弃它

10. timeout             :收集一批数据的超时时间,默认为0

11. worker_init_fn   :每个worker子进程在加载数据前独立调用的函数

12. prefetch_factor :加载器预备缓冲区Size系数,2代表总的预备缓冲区大小为2*num_workers*批数据大小   

13. persistent_workers:如果设为True,worker子进程将成为常驻进程,不会每次用完就关掉





二、pytorch-DataLoader的常用属性



本节展示在使用DataLoader时如何获取一些常用属性



1. DataLoader的常用属性


(1).DataLoader共有多少批数据?

方法:len(dataloader) 


(2).DataLoader每批数据有多少个样本?

方法:dataloader.batch_size   



   参考文献    


pytorch官方关于DataLoader的说明: https://pytorch.org/docs/stable/data.html#torch.utils.data.DataLoader 
collate_fn 的使用: 
https://blog.csdn.net/qq_35812205/article/details/120794077 
关于pin_memory:
https://zhuanlan.zhihu.com/p/561544545 






好了,以上就是pytorch的DataLoader的参数详细说明了~







 End 






联系老饼