DataLoader的使用
测试DataLoader,batch_size大小为4
import torchvision.datasets
from torch.utils.data import DataLoadertest_data = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor())
test_loader = DataLoader(dataset=test_data, batch_size=4, shuffle=False, num_workers=0, drop_last=False)# 测试数据集中第一张图片及target
img, target = test_data[0]
print(img.shape) # 3通道, 32x32
print(target)for data in test_loader:imgs, targets = dataprint(imgs.shape)print(targets)
将batch_size的大小改为64,创建日志文件
import torchvision.datasets
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWritertest_data = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor())
test_loader = DataLoader(dataset=test_data, batch_size=64, shuffle=True, num_workers=0, drop_last=False)# 测试数据集中第一张图片及target
img, target = test_data[0]
print(img.shape) # 3通道, 32x32
print(target)writer = SummaryWriter("dataloader")
step = 0
for data in test_loader:imgs, targets = data# print(imgs.shape)# print(targets)writer.add_images("test_data", imgs, step)step = step + 1writer.close()
运行后,在文件目录中生成dataloader文件夹
在Terminal中输入:
tensorboard --logdir="learn_pytorch/dataloader"
点开链接,每一步为8x8张图片
drop_last的作用
最后一步为8x2张图片,这是由于最后一组图片不足64张,并且drop_last=False,这个参数表示最后一步不足batch_size大小时,仍然保留图片
若改为drop_last=True
最后一步为第155步,有8X8张图片,删掉了最后一组的图片
shuffle的作用
当重复运行两轮时,决定第一轮数据和第二轮数据是否一样
shuffle=False:一样
shuffle=True:不一样