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

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

python 复制代码
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

python 复制代码
#设置通用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大小不一样的报错坑(

python 复制代码
# 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数据进行学习
python 复制代码
# test_loader是按批次读取的,一次读出的(也就是data)是含有batch_size个图片的
# 单次epoch中需要学到所有数据
# 内循环中,会将所有数据都遍历到,外层循环中,决定epoch次学习所有数据
# 在深度学习训练中,对数据进行打乱,然后多次epoch读取到不同内容的batch的数据进行学习
# 添加多张图是add_images
for epoch in range(5):
    step=0
    for data in test_loader: 
        imgs, target = data
        writer.add_images("epoch_{}".format(epoch),imgs,step)
        step +=1

writer.close()

# tensorboard --logdir=dataloader_logs

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

相关推荐
艾莉丝努力练剑32 分钟前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
武昌库里写JAVA2 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习
Cx330❀2 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法
杜子不疼.2 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习
小幽余生不加糖2 小时前
电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
人工智能·笔记·学习·音视频
..过云雨3 小时前
01.【数据结构-C语言】数据结构概念&算法效率(时间复杂度和空间复杂度)
c语言·数据结构·笔记·学习
myzzb3 小时前
基于uiautomation的自动化流程RPA开源开发演示
运维·python·学习·算法·自动化·rpa
岑梓铭4 小时前
考研408《计算机组成原理》复习笔记,第五章(3)——CPU的【数据通路】
笔记·考研·408·计算机组成原理·计组
科大饭桶6 小时前
昇腾AI自学Day2-- 深度学习基础工具与数学
人工智能·pytorch·python·深度学习·numpy
非凡ghost6 小时前
AMS PhotoMaster:全方位提升你的照片编辑体验
windows·学习·信息可视化·软件需求