哔哩大学的PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】
的P15讲讲述了dataloder的下载使用。
dataloder即把一个数据集打包,然后准备送到神经网络中去。
dataloder作用
代码注释为:
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
test_data = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor())
# 准备的测试数据集,括号里的内容为:
# 设置下载数据的路径./dataset
# 不是训练集,train=False
# 数据集转换为Tensor数据类型
test_loader = DataLoader(dataset=test_data, batch_size=64, shuffle=True, num_workers=0, drop_last=False)
# batch_size=64的意思是每次从test_data中取到64个数据集并打包
# drop_last=False和Ture的不同之处在于,最后不够64张图片时Ture则舍去,False则保留
# shuffle=True的意思是几次for循环的不同,两个for嵌套是否进行打乱
# 测试数据集中第一张图片及其target
img, target = test_data[0]
print(img.shape)
print(target)
# 如何取出dataloader中的每一个返回值呢?用for循环,其中数据都是随机取的
for data in test_loader:
imgs, targets = data
print(imgs.shape)
print(targets)
writer = SummaryWriter("dataloder")
step = 0
for data in test_loader:
imgs, targets = data
# print(imgs.shape)
# print(targets)
writer.add_images("test_data", imgs, step)
step = step + 1
#可以看到每次取的数据什么样,最后一张就是drop_last=False的区别
writer.close()
运行结果可以去Terminal中查看: