神经网络中dataset、dataloader获取加载数据的使大概结构及例子(pytorch框架)

该文介绍了使用Yolo等目标检测算法配合Tensorflow的DataLoader处理CIFAR10数据集的过程。通过Dataloader,数据被分批次加载,展示了shuffle参数对数据加载顺序的影响,强调了其在训练过程中的作用。利用Tensorboard可视化工具观察每轮的数据变化。
摘要由CSDN通过智能技术生成

使用yolo等算法进行获取加载数据进行训练、验证等,基本上都是以每轮获取所有数据,每轮中又分批次(batch)获取图片和标签,大概结构可以用以下的代码进行概括:

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

trans_dataset = torchvision.transforms.Compose([
    torchvision.transforms.ToTensor()
])

test_set = torchvision.datasets.CIFAR10(root="./dataset", train=False, transform=trans_dataset, download=True)
test_loader = DataLoader(dataset=test_set, batch_size=64, shuffle=False, num_workers=16, drop_last=True)

writer = SummaryWriter("log")
step = 0

for epoch in range(2):
    for data in test_loader:
        imgs, targets = data
        writer.add_images("Epoch {}".format(epoch), imgs, step)
        step += 1
writer.close()

经过dataloader后得到的是个迭代器,其中迭代器的每个元素是个集合:[ batch张图片的集合,batch个label的集合 ]
大概结构如下:
在这里插入图片描述
利用tensorboard查看每轮每批获取到的数据更加直观,运行完以上代码后,在terminal执行命令:tensorboard --logdir=log打开网页:
在这里插入图片描述
因为shuffle为False所以每轮都以相同的顺序获取数据,可以看到图中两轮获取到的一模一样。
若shuffle为True,再次运行,结果如下:
在这里插入图片描述
此时每轮获取的顺序就不一样了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值