PyTorch-DataLoader

news2024/12/23 3:25:03

DataLoader:从Dataset中取数据,怎么取,每次取多少可以由DataLoader中的参数进行设定,并将数据加载到神经网络中。

dataloader.py

import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

test_data = torchvision.datasets.CIFAR10('./dataset', train=False, transform=torchvision.transforms.ToTensor())
# 1.batch_size:每次取几个数据
# 2.shuffle:是否要打乱顺序
# 3.num_workers:进程数
# 4.drop_last:如9/4=2...1,若为True则最后一个不要了,若为False则最后一个数据也要。
test_loader = DataLoader(dataset=test_data, batch_size=64, shuffle=True, num_workers=0, drop_last=False)
# 测试集中的第一张图片以及target
img, target = test_data[0]
# print(img.shape, target)  # torch.Size([3, 32, 32]) 3
# print(test_data.classes[target])  # cat

writer = SummaryWriter('cifar10')
step = 0
for data in test_loader:
    imgs, targets = data
    writer.add_images('dataloader', imgs, step)
    step = step + 1
# for循环里的imgs是四张图片叠加在一起,所以用add_images
# torch.Size([4, 3, 32, 32]) tensor([0, 6, 0, 4])...
# torch.Size([4,3,32,32])-4张图,3通道,32×32大小的图片
writer.close()

result:

当drop_last为False时,最后一步的情况: 

 

当drop_last为True时,最后一步的情况(只进行到155步): 

 

进行两轮,且若shuffle为False时:

dataloader.py

import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

test_data = torchvision.datasets.CIFAR10('./dataset', train=False, transform=torchvision.transforms.ToTensor())
# 1.batch_size:每次取几个数据集
# 2.shuffle:是否要打乱顺序
# 3.num_workers:进程数
# 4.drop_last:如9/4=2...1,若为True则最后一个不要了,若为False则最后一个数据也要。
test_loader = DataLoader(dataset=test_data, batch_size=64, shuffle=False, num_workers=0, drop_last=True)
# 测试集中的第一张图片以及target
img, target = test_data[0]
# print(img.shape, target)  # torch.Size([3, 32, 32]) 3
# print(test_data.classes[target])  # cat

writer = SummaryWriter('cifar10')
for epoch in range(2):
    step = 0
    for data in test_loader:
        imgs, targets = data
        writer.add_images('Epoch:{}'.format(epoch), imgs, step)
        step = step + 1
# for循环里的imgs是四张图片叠加在一起,所以用add_images
# torch.Size([4, 3, 32, 32]) tensor([0, 6, 0, 4])...
# torch.Size([4,3,32,32])-4张图,3通道,32×32大小的图片
writer.close()

若shuffle改为True:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/570699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python框架比较:Django、Flask和Pyramid三者的优缺点和应用场景

第一章:引言 在当今快节奏的软件开发行业中,选择合适的开发框架对于开发人员来说至关重要。Python作为一种流行的编程语言,拥有众多强大的框架,其中包括Django、Flask和Pyramid。本文将比较这三个Python框架的优缺点和应用场景&a…

企业级低代码开发,迈向企业数字化时代

当下,随着科技的快速发展,软件开发的成本不断降低,越来越多的人可以参与到软件开发的过程中。但是在这个过程中,我们也发现了一个问题,就是软件开发的成本越来越高。传统的开发模式需要投入大量人力物力,而…

旅游信息推荐系统

文章目录 旅游信息推荐系统一、系统演示二、项目介绍三、系统运行界面图四、系统部分功能截图五、部分代码展示六、底部获取源码 旅游信息推荐系统 一、系统演示 旅游信息推荐系统 二、项目介绍 数据库版本: mysql8.0 数据库可视化工具: navicat 服务器…

新技术越来越多,作为程序员,我们应该怎么规划职业生涯? | 社区征文

随着科技的不断进步,新技术不断涌现,对程序员的要求也在不断提高。作为一名程序员,要想在这个竞争激烈的行业中立足,就需要制定一份明确的职业规划,不断学习和掌握新技术,提升自己的职业能力和竞争力。 确定…

自古以来,反射也是兵家必争之地

成文耗时1小时,阅读5min,有用指数5颗星。 这几天收到一个战术性需求,将一大坨字段序列化为特定格式的字符串。 大概是下表: 序号字段名描述是否必填0logVersion日志版本是1productName产品是2serviceName服务是.........25extend3…

手写Spring源码(简化版)

导航: 【Java笔记踩坑汇总】Java基础进阶JavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线MySQL高级篇设计模式牛客面试题 参考视频: 周瑜大都督手写模拟Spring_哔哩哔哩 源码: https://gitee.com/vincewm/spring-master 目…

windows自动保存git密码

Windows平台在使用Git的时候经常会出现反复输入密码,生成密钥对的时候如果设置了密码,那么每次使用时都会要求输入密码,那可以通过下面的方式解决。 1. 配置ssh自动启动 管理员启动终端 Set-Service ssh-agent -StartupType Auto # 设置为…

C语言实现分数求和

代码&#xff1a; // 计算1/1 - 1/2 1/3 - 1/4 ...1/99 - 1/100的值 // 计算1/1 - 1/2 1/3 - 1/4 ...1/99 - 1/100的值 int main() {int i 0;double sum 0.0;int flag 1;for (i 1; i < 100; i) {sum sum flag*(1.0 / i);flag -flag;}printf("%lf\n", su…

Caffeine 本地高速缓存工具类

目录 Caffeine工具类方式 SpringBoot 整合 Caffeine 缓存 &#xff08;SpringCache模式&#xff09; 驱逐策略 开发使用 Caffeine是一种高性能的缓存库&#xff0c;是基于Java 8的最佳&#xff08;最优&#xff09;缓存框架&#xff0c;性能各方面优于guava。 Caffeine工具…

脉蜂:Django + Flutter 开发的进销存管理系统【已开源】

项目说明 小规模零售&#xff08;包括电商&#xff09;跟大规模零售企业的差别在哪里呢&#xff1f; 以我当前的认知来看&#xff0c;小规模零售跟大规模零售企业的差别更多的是在供应链管理、进销存管控上面产生的。如果有一个工具&#xff0c;能够帮他们减少这方面的差异&…

我们拆了一款Tof+AI避障的扫地机,小米铁蛋铁大机器人同款

追觅W10 Pro是2022年初推出的新品&#xff0c;相较前一代W10&#xff0c;两者间最大的区别是将LDS避障升级为了TofAI避障&#xff0c;扫地机本体前脸像给W10开了“大眼特效”的传感器和摄像头就是机械避障升级的最佳佐证。 在外观上扫地机还是延续了以往的设计&#xff0c;顶部…

ReactRouterDom-v5v6用法与异同

本文作者系360奇舞团前端开发工程师 简介&#xff1a; React Router Dom是React.js中用于实现路由功能的常用库。在React应用中&#xff0c;路由可以帮助我们管理页面之间的导航和状态&#xff0c;并实现动态加载组件。本文将深入探讨React Router Dom的两个主要版本&#xff1…

​一文学会iOS画中画浮窗

本文字数&#xff1a;11934字 预计阅读时间&#xff1a;40分钟 背景 之前有看到有人用画中画实现时分秒的计时&#xff0c;顺手收藏了&#xff0c;一直没来及看。最近使用《每日英语听力》&#xff0c;突然发现它用画中画实现了听力语句的显示&#xff0c;顿时来了兴趣&#xf…

超线程技术

超线程&#xff08;HT, Hyper-Threading&#xff09;是英特尔研发的一种技术&#xff0c;于2002年发布。超线程技术原先只应用于Xeon 处理器中&#xff0c;当时称为“Super-Threading”。之后陆续应用在Pentium 4 HT中。早期代号为Jackson。 [1] 通过此技术&#xff0c;英特尔实…

Golang每日一练(leetDay0077) 存在重复元素、天际线问题

目录 217. 存在重复元素 Contains Duplicate &#x1f31f; 218. 天际线问题 The Skyline Problem &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 …

PyTorch-torchvision

1. 以Torchvision中的CIFAR10为例 dataset.py Ps&#xff1a;如果是从其他地方下载的gz文件&#xff0c;直接建立一个dataset文件夹然后将gz文件放进去&#xff0c;再运行。 import torchvisiontrain_set torchvision.datasets.CIFAR10(root"./dataset", trainTr…

SpringCloud Alibaba Nacos

SpringCloud Alibaba Nacos Nacos 基础 1 官网 1.1 https://github.com/alibaba/Nacos 2 Nacos 是什么&#xff1f; 2.1 一句话: Nacos 就是注册中心[替代Eureka]配置中心[替代Config] 2.2 Nacos&#xff1a;Dynamic Naming and Configuration Service 2.3 Nacos&#xff…

数据结构---二叉树(C语言)

二叉树 1. 二叉树1.1 二叉树的遍历1.1.1二叉树前中后序遍历&#xff08;递归版&#xff09;1.1.2 层序遍历 1.2 二叉树的其他相关接口1.2.1 求二叉树的结点数量1.2.2 求叶子结点个数1.2.3 求树高1.2.4 求第k层结点个数1.2.5 查找二叉树值为k的结点 1. 二叉树 空树非空&#xff…

跨境DNS解析失败问题解决

新钛云服已累计为您分享748篇技术干货 问题 公司使⽤的是阿⾥云基础设施&#xff0c;DNS解析使⽤的是境外的Akamai作为域名的DNS解析服务商。 当前有部分应⽤需要被第三⽅应⽤调⽤&#xff0c;同时也有主动调⽤第三⽅应⽤的需求。最近突发了很多调⽤失败问题。 应⽤调⽤失败&am…