import torchvision
from torch.utils.data import DataLoader
from tensorboardX import SummaryWriter
test_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=True)
#shuffle是每个epoch都打乱顺序随机抽; num_workers是线程数
img, target = test_data[0]
print(img.shape)
# 返回:torch.Size([3, 32, 32]) 单张图片的尺寸和通道数
print(target)
# 标签的索引
writer = SummaryWriter("dataloader")
for epoch in range(2): # 进行两轮,上面的 shuffle就是对这个位置有影响
step = 0
for data in test_loader: # 在 cifar10数据集的__getitem__函数里,写了返回值是imgs和targets
imgs, targets = data
print(imgs.shape)
# 返回torch.Size([4, 3, 32, 32]) 4是 batch_size 设定的值, 后面的 3, 32, 32 是单张图片的尺寸和通道数
print(targets) 返回tensor([2, 8, 0, 2]) 这4个数字抽取的四个图片的分类;debug一下,可以看到 sampler中的取值方式是 RandomSampler
writer.add_images("Epoch: {}".format(epoch), imgs, step)
step += 1
writer.close()
【PyTorch笔记】pytorch入门教程6dataloader
最新推荐文章于 2024-06-20 11:07:23 发布