dataloader本质上是一个可迭代对象,可以使用iter()进行访问,采用iter(dataloader)返回的是一个迭代器,然后可以使用next()访问。
也可以使用enumerate(dataloader)的形式访问。
下面举例说明:

transformation = transforms.Compose([transforms.ToTensor()
])train_ds = datasets.MNIST("./data", train=True, transform=transformation, download=True)test_ds = datasets.MNIST("./data", train=False, transform=transformation, download=True)train_dl = DataLoader(train_ds, batch_size=64, shuffle=True)
test_dl = DataLoader(test_ds, batch_size=256)
#imgs, labels = next(iter(train_dl))for labels, imgs in enumerate(train_dl): #如果imgs在前,labels在后,那么imgs将是标签形式,labels才是图片转化0~1之间的值。print("imgs:\t", imgs)print("labels:\t", labels)
labels:   3
imgs:    [tensor([[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]],[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]],[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]],...,[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]],[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]],[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]]]), tensor([5, 1, 7, 6, 7, 9, 6, 4, 0, 4, 0, 4, 4, 4, 2, 7, 5, 2, 9, 2, 1, 9, 1, 8,2, 6, 8, 0, 1, 6, 1, 0, 3, 6, 6, 2, 5, 1, 3, 4, 4, 1, 8, 4, 8, 1, 2, 5,2, 0, 1, 3, 6, 6, 0, 1, 7, 6, 0, 8, 3, 7, 1, 6])]

iter(dataloader)访问时,imgs在前,labels在后,分别表示:图像转换0~1之间的值,labels为标签值。并且imgs和labels是按批次进行输入的。

transformation = transforms.Compose([transforms.ToTensor()
])train_ds = datasets.MNIST("./data", train=True, transform=transformation, download=True)test_ds = datasets.MNIST("./data", train=False, transform=transformation, download=True)train_dl = DataLoader(train_ds, batch_size=64, shuffle=True)
test_dl = DataLoader(test_ds, batch_size=256)
#imgs, labels = next(iter(train_dl))
"""
for labels, imgs in enumerate(train_dl):print("imgs:\t", imgs)print("labels:\t", labels)
"""
for imgs, labels in iter(train_dl):print("imgs:\t", imgs)print("label:\t", labels)
imgs:     tensor([[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]],[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]],[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]],...,[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]],[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]],[[[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],...,[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.],[0., 0., 0.,  ..., 0., 0., 0.]]]])
label:   tensor([6, 1, 0, 8, 6, 7, 8, 1, 3, 4, 8, 5, 8, 9, 7, 2, 9, 3, 0, 6, 1, 1, 4, 6,0, 6, 7, 9, 3, 7, 1, 3, 5, 2, 7, 1, 1, 0, 3, 0, 1, 0, 8, 7, 5, 1, 5, 6,3, 3, 1, 3, 8, 6, 8, 7, 6, 3, 8, 3, 1, 0, 2, 7])

Pytorch中iter(dataloader)的使用相关推荐

  1. PyTorch中模型的可复现性

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 在深度学习模型的训练过程中,难免引入 ...

  2. 【学习系列7】Pytorch中的数据加载

    目录 1. 模型中使用数据加载器的目的 2. 数据集类 3. 迭代数据集 1. 模型中使用数据加载器的目的 在前面的线性回归横型中,我们使用的数据很少,所以直接把全部数据放到锁型中去使用. 但是在深度 ...

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

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

  4. Pytorch中Dataloader踩坑:RuntimeError: DataLoader worker (pid(s) 6700, 10620) exited unexpectedly

    Pytorch中Dataloader踩坑 环境: 问题背景: 观察报错信息进行分析 根据分析进行修改尝试 总结 环境: 系统:windows10 Pytorch版本:1.5.1+cu101 问题背景: ...

  5. 关于Pytorch中dataset的迭代问题(这就是为什么我们要使用dataloader的原因之一)

    目录 一.问题 二.思考 三.实验 四.解决方法 一.问题 博主在写采样器时将dataset的类对象赋值给data_source,然后准备对data_source取样,总是提示在__getitem__ ...

  6. pytorch中DataLoader的num_workers参数详解与设置大小建议

    Q:在给Dataloader设置worker数量(num_worker)时,到底设置多少合适?这个worker到底怎么工作的? train_loader = torch.utils.data.Data ...

  7. pytorch中Dataloader()中的num_workers设置问题

    pytorch中Dataloader()中的num_workers设置问题: 如果num_workers的值大于0,要在运行的部分放进__main__()函数里,才不会有错: import numpy ...

  8. 【深度学习】在PyTorch中构建高效的自定义数据集

    文章来源于磐创AI,作者磐创AI 学习Dataset类的来龙去脉,使用干净的代码结构,同时最大限度地减少在训练期间管理大量数据的麻烦. 神经网络训练在数据管理上可能很难做到"大规模" ...

  9. Pytorch中DistributedSampler()中的随机因素

    在使用YOLOv5的mosaic数据增强(从数据集中随机采样3张图像与当前的拼在一起,组成一张里面有4张小图的大图)过程中,当使用多卡(DDP)训练自己的算法时出现了每张卡所生成的图像中,除了原本的那 ...

  10. 【深度好文】多任务模型中的DataLoader实现

    对于多任务学习multi-task-learning(MTL)问题,经常会要求特定的训练过程,比如数据处理,模型结构和性能评估函数.本文主要针对数据处理部分进行展开,主要针对多个标注好的数据集如何来训 ...

最新文章

  1. SpringBoot中实现连接多个Redis分别读写数据
  2. 访问chm文件出现“已取消到该网页的导航”的解决方法
  3. 通过adb命令查看当前activity(更新版)
  4. java 自定义注解+AOP实现日志记录
  5. MYSQL-创建存储过程
  6. 号角响起!百度AI开发者实战营第二季教你用AI实现商业梦想
  7. easyui tree的简单使用
  8. python中堆排序_Python实现堆排序的方法详解
  9. Flink kafka source sink 源码解析
  10. 《大教堂与市集》(TheCathedral and the Bazaar)全文中译版
  11. ceph pg peering和恢复 (2)
  12. 美国薪资最高的技术技能:Golang、Kafka、DynamoDB、Redshift、Cassandra
  13. 温故而知新,可以为师矣,学习到的东西不断回顾,往往能够发现自己的不足...
  14. 【解决方案】“云-端协同”打造基于安防视频云服务EasyCVR的雪亮工程监管视频平台
  15. 瑞尔森大学计算机科学研究生,瑞尔森大学计算机科学硕士申请.pdf
  16. CSS 3D动态立体图形
  17. 监控突然显示服务器故障,网络监控出现服务器故障怎么办
  18. windows技巧之添加右键菜单
  19. 准确率、精确率、召回率、F1-score
  20. 2017年java笔试题_初级java程序员笔试题

热门文章

  1. 漫画制作软件EasyComic V1.7发布
  2. 论AI在叮咚智能音箱中的演进和应用
  3. 【Linux】FirefoxBrowser 火狐浏览器安装 FlashPlayer 插件
  4. Mac OS X:显示/设置分辨率的命令(源程序)
  5. 蓝牙(四)LMP协议之一
  6. 2022年电子造粒计数器市场前景分析及研究报告
  7. 新建 umi 项目,Error: Rendered more hooks 或者 Rendered fewer hooks
  8. 服务器网卡不显示了,重装系统后网络适配器怎么不见了?没有网络适配器解决方法...
  9. Android的SharedPreferences和SQLite
  10. 微信小程序开发|起步-工欲善其事必先利其器