DataLoader
功能 : 创建可以迭代的数据装载器
参数:
dataset : Dataset类对象, 决定数据从哪读取以及如何读取
batchsize: 决定数据批次大小
num_works: 多进程读取数据的线程数
shuffle: 每个 epoch 是否乱序
当样本数不能被batchsize整除时, 是否舍去最后一个batch的数据
示例:每四张图片打包一次
import torchvision.datasets
from torch.utils.data import DataLoader
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter
img_tensor=transforms.ToTensor()
test_set=torchvision.datasets.CIFAR10("dataset2",train=False,transform=img_tensor)
test_loader=DataLoader(dataset=test_set,batch_size=4,shuffle=True,num_workers=0,drop_last=False)
for data in test_loader:
img,target=data
print(img.shape)
print(target)
从上面可以看到,在size里,显示4张图片,然后是通道数,长与宽
tensor指的是target中指向事物的下标,例如,规定飞机是1,然后如果这个图片是飞机,就会显示1
示例:每64张图片一打包,然后l利用tensorboard可视化
import torchvision
from torch.utils.data import DataLoader
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter
img_tensor=transforms.ToTensor()
test_data=torchvision.datasets.CIFAR10("dataset2",train=False,transform=img_tensor)
test_loader=DataLoader(dataset=test_data,batch_size=64,shuffle=True,num_workers=0,drop_last=True)
writer=SummaryWriter("logs")
step=0
for data in test_loader:
imgs,targets=data
writer.add_image("test",imgs,step,dataformats='NCHW')
step+=1
writer.close()