15 DataLoader的使用
一、dataset与dataloader的区别
- dataset:数据集本身
- dataloader:提取数据集的方式
二、dataloader方法
- 方法查询和解析:
2. 参数:
- batch_size:每次抓几张
- shuffle:每次洗牌的顺序是否一样,True为不一样(一般情况),False为一样
- num_workers:单个进程(设置为0)还是多个进程(大于0),多个进程比较快,但是容易报错(如下),就改为0
- drop_last:不能整除的部分,为True舍去,为False保留
- dataloader应用
- 数据的imgs和targets
for data in test_loader:
imgs,targets=data
print(imgs.shape)
print(targets)
- 随机抓取:
- add_images()及相关参数的使用:
点击查看代码
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
#测试集
test_data=torchvision.datasets.CIFAR10(root="./CIFAR10_dataset",transform=torchvision.transforms.ToTensor(),train=False,download=True)
test_loader=DataLoader(dataset=test_data,batch_size=64,shuffle=False,num_workers=0,drop_last=True)
#1. 查看图片信息
img,target=test_data[0]#测试数据集中的第一张图片和样本
print(img.shape)#查看形状
print(target)#查看分类
# #2. 数据的imgs和targets
# for data in test_loader:
# imgs,targets=data
# print(imgs.shape)
# print(targets)
#3. 把batchsize改为64 进行展示
writer=SummaryWriter("logs_15")
step=0
for data in test_loader:
imgs,targets=data
# writer.add_images("test_data",imgs,step) #这个注意是添加images 而不是image
writer.add_images("test_data_drop_last", imgs, step) # 这个注意是添加images 而不是image
step+=1 #控制执行几次
#4. 测试shuffle参数 看每次取样是否相同
for epoch in range(2):
step=0
for data in test_loader:
imgs, targets = data
writer.add_images("Epoch:{}".format(epoch),imgs,step)
step += 1 # 控制执行几次
writer.close()
执行代码:
tensorboard --logdir=logs_15 --host=127.0.0.1
运行效果:
drop_last=False 的效果:
表示取余部分不去掉
drop_last=True 的效果:
表示取余部分去掉
shuffle=False的效果:
表示每次取样的图片都相同,但是一般情况下,令其为True
标签:
深度学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律