当前位置: 首页 > news >正文

pytorch学习笔记-使用DataLoader加载固有Datasets(CIFAR10),使用tensorboard进行可视化

大概就是DataLoader的基本语法操作吧…毕竟博主也是刚开始学习

import torchvision
from torchvision import transforms, datasets
from torch.utils.tensorboard import SummaryWriter
from torch.utils.data import DataLoader

说明一下下面的transforms虽然只用了一个可以直接写到datasets.CIFAR10里面完全没问题,但是我还是更加建议下面的这样写,感觉是一个更好的习惯,对于以后使用多个transform的组合时很有利~

transfrom的使用具体可以参考上一篇blog

#设置通用transforms
dataset_transfroms = transforms.Compose([transforms.ToTensor()
])test_data = datasets.CIFAR10(root="./dataset",train=False,transform=dataset_transfroms)

num_workers:采用设置的子进程加载数据到内存
drop_last:数据总量对batch_size取余,余数部分是否drop

呃这里为什么要单独列出来一下呢是因为想提醒一下最好drop,因为博主隐约记得自己好像踩过batch_size大小不一样的报错坑(

# num_workers:采用设置的子进程加载数据到内存
# drop_last:数据总量对batch_size取余,余数部分是否drop
test_loader = DataLoader(dataset=test_data,batch_size=64,shuffle=True,num_workers=0,drop_last=True)# img, target = test_data[0]writer = SummaryWriter("dataloader_logs")

注(以下为个人理解,有错欢迎指正):

  1. test_loader是按批次读取的,一次读出的(也就是data)是含有batch_size个图片的
  2. 单次epoch中需要学到所有数据
  3. 内循环中,会将所有数据都遍历到,外层循环中,决定epoch次学习所有数据
  4. 在深度学习训练中,对数据进行打乱,然后多次epoch读取到不同内容组合的batch数据进行学习
# test_loader是按批次读取的,一次读出的(也就是data)是含有batch_size个图片的
# 单次epoch中需要学到所有数据
# 内循环中,会将所有数据都遍历到,外层循环中,决定epoch次学习所有数据
# 在深度学习训练中,对数据进行打乱,然后多次epoch读取到不同内容的batch的数据进行学习
# 添加多张图是add_images
for epoch in range(5):step=0for data in test_loader: imgs, target = datawriter.add_images("epoch_{}".format(epoch),imgs,step)step +=1writer.close()# tensorboard --logdir=dataloader_logs

随便截了不同epoch的最后一个batch构成情况,可以看到内容组合不一样,这是因为我们进行了打乱操作,这样可以保证不同的epoch学习到的batch组合情况不一样
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/297773.html

相关文章:

  • 第三篇:VAE架构详解与PyTorch实现:从零构建AI的“视觉压缩引擎”
  • 星图云开发者平台新功能速递 | 页面编辑器:全场景编辑器,提供系统全面的解决方案
  • SQL性能优化
  • 【初识数据结构】CS61B中的快速排序
  • 2025年第四届创新杯(原钉钉杯)赛题浅析-助攻快速选题
  • 【c++】问答系统代码改进解析:新增日志系统提升可维护性——关于我用AI编写了一个聊天机器人……(14)
  • 【C++进阶】第7课—红黑树
  • 什么是主成分分析法和方差
  • 【神经网络概述】从感知机到深度神经网络(CNN RNN)
  • 高级05-Java NIO:高效处理网络与文件IO
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-评论用户时间占比环形饼状图实现
  • vbs-实现模拟打开excel和强制计算和保存
  • 7月25日总结
  • Android Kotlin 协程全面指南
  • Thinkphp8 Redis队列与消息队列Queue
  • C#模拟pacs系统接收并解析影像设备数据(DICOM文件解析)
  • Pattern正则表达式知识点
  • 第二十天(正则表达式与功能实际运用)
  • VUE 学习笔记6 vue数据监测原理
  • 设计模式十:单件模式 (Singleton Pattern)
  • 空间信息与数字技术专业能从事什么工作?
  • 【LeetCode数据结构】二叉树的应用(二)——二叉树的前序遍历问题、二叉树的中序遍历问题、二叉树的后序遍历问题详解
  • uniapp创建vue3+ts+pinia+sass项目
  • 2025年RISC-V中国峰会 主要内容
  • 绘图库 Matplotlib Search
  • RISC-V VP、Gem5、Spike
  • 恋爱时间倒计时网页设计与实现方案
  • 借助Aspose.HTML控件,在 Python 中将 SVG 转换为 PDF
  • Vue nextTick
  • 基于超176k铭文数据,谷歌DeepMind发布Aeneas,首次实现古罗马铭文的任意长度修复