DataLoader的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

DataLoader是与Dataset对应的。Dataset是数据集,而DataLoader是用来加载数据集的。


一、使用步骤

代码样例及注释

第一段代码:对应成果取第一张和最后一张如图1所示。

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

#准备的测试数据集
test_set=torchvision.datasets.CIFAR10("./dataset",train=False,transform=torchvision.transforms.ToTensor())
test_loader=DataLoader(dataset=test_set,batch_size=64,shuffle=True,num_workers=0,drop_last=False)
#bach_size=64代表每次从test_set中取64个数据进行打包,shuffle=True表示将图片打乱顺序,
# num_workers是表示多线程中几个GPU在跑程序,drop_last代表最后一层的图片有没有被舍弃

#测试数据集中第一张图片及target
img,target=test_set[0]
print(img.shape)
print(target)

writer=SummaryWriter("p1")   #用于可视化,p1是将可视化后图片的保存在p1文件夹下

step=0  #每次图片都放在一个新的step里
for data in test_loader:
    imgs,targets=data
    #print(img.shape)
    #print(targets)
    writer.add_images("test_data",imgs,step)  #注意20行,21行的s不能丢,因为这里指的是不止一张图片
    step=step+1
writer.close()

第二段代码:这里设置drop_last=True,指的是去掉了最后一层不足64张图片的16张图片,对应的成果取最后一张如图2所示。

第三段代码:若加载图片限制为进行两轮,且乱序排列图片,舍去最后不足以64张图片时,对应的代码及注释如下,对应的成果如图3所示。

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

#准备的测试数据集
test_set=torchvision.datasets.CIFAR10("./dataset",train=False,transform=torchvision.transforms.ToTensor())
test_loader=DataLoader(dataset=test_set,batch_size=64,shuffle=True,num_workers=0,drop_last=True)
#bach_size=64代表每次从test_set中取64个数据进行打包,shuffle=True表示将图片打乱顺序,
# num_workers是表示多线程中几个GPU在跑程序,drop_last代表最后一层的图片有没有被舍弃

#测试数据集中第一张图片及target
img,target=test_set[0]
print(img.shape)
print(target)

writer=SummaryWriter("p1")   #用于可视化,p1是将可视化后图片的保存在p1文件夹下

for epoch in range(2): #测试两轮,第0轮和第一轮
    step = 0  # 每次图片都放在一个新的step里
    for data in test_loader:
        imgs,targets=data
    #print(img.shape)
    #print(targets)
    writer.add_images("Epoch:{}".format(epoch),imgs,step)  #注意21行,24行的s不能丢,因为这里指的是不止一张图片
    step=step+1
writer.close()

第四段代码:在第三段代码的基础上,若设置shuffle=False,代表对图片不进行乱序排列,那么这两轮加载图片时,展示的成果将一模一样。如图4所示。

二、成果展示

DataLoader的使用_第1张图片

DataLoader的使用_第2张图片

图1

DataLoader的使用_第3张图片

图2 

DataLoader的使用_第4张图片

DataLoader的使用_第5张图片

 图3

 

DataLoader的使用_第6张图片

 

DataLoader的使用_第7张图片

 图4


总结

 以上涉及的内容,参照b站up主,“我是土堆” 。这里只是将自己所学内容进行整理并分享。

DataLoader的使用_哔哩哔哩_bilibili



 

你可能感兴趣的:(python,图像处理,计算机视觉,深度学习,pytorch)