目录

1.torch.utils.data.DataLoader概念介绍

2.torch.utils.data.DataLoader参数介绍

3 案例体会

DataLoader:[batch_sizeN, C, H, W]+[Target1, Target2, ......., TargetN] ?


1.torch.utils.data.DataLoader概念介绍

Data loader. Combines a dataset and a sampler, and provides an iterable over the given dataset.

  • DataLoader是Pytorch中用来处理模型输入数据的一个工具类。
  • 组合了数据集(dataset) + 采样器(sampler),
  • 并在数据集上提供单线程或多线程(num_workers )的可迭代对象。

只要用PyTorch训练模型,往往都离不开torch.utils.data.DataLoader接口,其主要作用就是将自定义的数据读取接口的输出或者PyTorch已有的数据接口的输入按照batch size分装成Tensor,后续只需要在包装成Variable即可作为模型的输入

From:PyTorch源码解读之torch.utils.data.DataLoader


2.torch.utils.data.DataLoader参数介绍

torch.utils.data.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)
  • dataset (Dataset) :加载数据的数据集。
  • batch_size (int, optional) : 每个batch加载多少个样本(默认: 1)。
  • shuffle (bool, optional) :设置为True时会在每个epoch重新打乱数据(默认: False)。
  • sampler (Sampler, optional) : 定义从数据集中提取样本的策略,即生成index的方式,可以顺序也可以乱序。
  • num_workers (int, optional): 用多少个子进程加载数据。0:数据将在主进程中加载(默认: 0)
  • collate_fn (callable, optional) :将一个batch的数据和标签进行合并操作。
  • pin_memory (bool, optional) :设置pin_memory=True,则意味着生成的Tensor数据最开始是属于内存中的锁页内存,这样将内存的Tensor转义到GPU的显存就会更快一些。
  • drop_last (bool, optional):如果数据集大小不能被batch size整除,则设置为True后可删除最后一个不完整的batch。如果设为False并且数据集的大小不能被batch size整除,则最后一个batch将更小。(默认: False)
  • timeout:用来设置数据读取的超时时间的,但超过这个时间还没读取到数据的话就会报错。
  • worker_init_fn(callable, optional):如果不是None,将在播种之后和数据加载之前,对每个worker子进程使用worker id (int in [0, num_workers - 1])作为输入调用。(默认值:None)

如果设置为多进程读取数据,那么就会采用队列的方式来读,如果不是采用多进程来读取数据,那就采用普通方式来读。


3 案例体会

#案例 from https://blog.csdn.net/weixin_43981621/article/details/119685671
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
# 准备的测试数据集  数据放在了CIFAR10文件夹下
test_data = torchvision.datasets.CIFAR10("./CIFAR10", train=False, transform=torchvision.transforms.ToTensor()
)test_loader = DataLoader(dataset=test_data, batch_size=4, shuffle=True, num_workers=0, drop_last=False
)
# 测试数据集中第一张图片及target
img, target = test_data[0]
print(img.shape)
print(target)# 输出
torch.Size([3, 32, 32])       # 3表示图像是RGB通道的,32*32的尺寸
3                             # 3表示图像的类别是3
# 设置参数batch_size=4时,每次取了4张照片,并获得4个targets标签。
# 在定义test_loader时,设置了batch_size=4,表示一次性从数据集中取出4个数据
for data in test_loader:imgs, targets = dataprint(imgs.shape)print(targets)# 输出
torch.Size([4, 3, 32, 32])  # 4 :batch_size = 4, RGB通道,H,W
tensor([8, 9, 1, 0])        # 表示一次性取出的4张图像的target信息

PyTorch源码解读之torch.utils.data.DataLoader

pytorch-DataLoader(数据迭代器)_数据迭代器

torch.utils.data.DataLoader使用方法

DataLoader的使用_我这一次的博客-CSDN博客_dataloader

【Torch】Dataloader torch.utils.data.DataLoader全面详实概念理解相关推荐

  1. 2021.08.24学习内容torch.utils.data.DataLoader以及CUDA与GPU的关系

    pytorch数据加载: ①totchvision 的包,含有支持加载类似Imagenet,CIFAR10,MNIST 等公共数据集的数据加载模块 torchvision.datasets impor ...

  2. torch.utils.data.DataLoader 详解

    class torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, num_workers=0, ...

  3. PyTorch—torch.utils.data.DataLoader 数据加载类

    文章目录 DataLoader(object)类: _DataLoaderIter(object)类 __next__函数 pin_memory_batch() _get_batch函数 _proce ...

  4. 阅读源码-理解torch.utils.data、torch.utils.data.Dataset、torch.utils.data.DataLoader的工作方式

    文章目录 目标 Dataset DataLoader 应用 Dataset DataLoader 测试 知识点 Python splitlines()方法 python filter()函数 暂时先写 ...

  5. torch.utils.data.DataLoader()的使用

    数据加载器,结合了数据集和取样器,并且可以提供多个线程处理数据集.在训练模型时使用到此函数,用来把训练数据分成多个小组,此函数每次抛出一组数据.直至把所有的数据都抛出.就是做一个数据的初始化. 官网上 ...

  6. Pytorch 中的数据类型 torch.utils.data.DataLoader 参数详解

    DataLoader是PyTorch中的一种数据类型,它定义了如何读取数据方式.详情也可参考本博主的另一篇关于torch.utils.data.DataLoader(https://blog.csdn ...

  7. 深度学习之“制作自定义数据”--torch.utils.data.DataLoader重写构造方法。

    深度学习之"制作自定义数据"–torch.utils.data.DataLoader重写构造方法. 前言: ​ 本文讲述重写torch.utils.data.DataLoader类 ...

  8. pytorch utils.data.DataLoader

    1.应用 import torch import torch.utils.data as Data x = torch.linspace(1, 10, 10) y = torch.linspace(1 ...

  9. torch.utils.data.DataLoader()到底是什么作用?

    就是数据加载器,结合了数据集和取样器,并且可以提供多个线程处理数据集.在训练模型时使用到此函数,用来把训练数据分成多个小组,此函数每次抛出一组数据.直至把所有的数据都抛出.就是做一个数据的初始化. 生 ...

最新文章

  1. [转][android深入学习]android窗口管理机制
  2. 形象的解释神经网络激活函数的作用是什么
  3. 搜索引擎怎么收集的那么多内容?
  4. php爬取flash的交互数据库,基于PHP的Flash与MySQL数据库通讯的实现
  5. Cesium专栏-卫星轨迹
  6. 在Xuper链上部署Java语言智能合约和分析存证合约的实现逻辑
  7. easyui datagrid 获得共多少条记录_聊城市优化简化获得电力流程做法在全省供电系统推广...
  8. 移动应用后端应该使用 AWS 还是 Firebase?
  9. 延时摄影制作软件——GlueMotion for Mac支持m1
  10. c语言编译器官网,C语言编译器app_c语言编译器app官网下载_c语言编译器手机版app-多特软件站安卓网...
  11. python声音模拟_5秒钟让python克隆别人的声音
  12. 微型计算机的组装步骤,微型计算机系统装配教程
  13. 项目中的Html和JS使用的随便总结
  14. html未响应是什么原因,ie浏览器未响应如何解决
  15. excel 删除重复项_在Excel 2013列表中删除重复项
  16. RAP简介教程常用规则
  17. Java 基础 - List 遍历时为什么不能通过 for 循环进行删除,而使用 Iterator 可以 ?
  18. 欧派caxa设计软件_欧派家居“领航者”杯CAXA设计大赛十强争霸 彰显设计实力
  19. 锚定情境法(二):如何合理选择情境题?
  20. LoadRunner通过SiteScope监控MySQL的性能

热门文章

  1. 网易云音乐前端模块动态下发系统
  2. Flask报错及其相关解决方法汇总
  3. PPT进阶篇---如何让你的声音好听
  4. 路由的导航守卫过渡动效transtion导航守卫 路由懒加载 路由元信息 @stage3---wee2--day7
  5. 不得转载可以转发吗_微信公众号如何转发别人的文章,转载原创文章注意事项...
  6. 锂离子电池热失控预警资料整理(三)
  7. Nginx基础应用——日志切割
  8. mysql安装到吐血
  9. python绘制等值线图_使用matplotlib绘制等值线图
  10. Java强、软、弱、虚四大引用(附代码示例)