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组合情况不一样

相关推荐
日更嵌入式的打工仔3 分钟前
0欧电阻作用
笔记
奶茶精Gaaa21 分钟前
工具分享--json在线转换工具
学习
wdfk_prog38 分钟前
[Linux]学习笔记系列 -- [drivers][I2C]I2C
linux·笔记·学习
盐焗西兰花1 小时前
鸿蒙学习实战之路-Reader Kit自定义字体最佳实践
学习·华为·harmonyos
子榆.1 小时前
CANN 与主流 AI 框架集成:从 PyTorch/TensorFlow 到高效推理的无缝迁移指南
人工智能·pytorch·tensorflow
觉醒大王1 小时前
哪些文章会被我拒稿?
论文阅读·笔记·深度学习·考研·自然语言处理·html·学习方法
近津薪荼2 小时前
dfs专题5——(二叉搜索树中第 K 小的元素)
c++·学习·算法·深度优先
方安乐2 小时前
科普:股票 vs 债券的区别
笔记
敏叔V5872 小时前
AI智能体的工具学习进阶:零样本API理解与调用
人工智能·学习
2501_941864963 小时前
科学方法论破解学习时间堆砌误区
学习