7.初识Pytorch使用Dataloader

DataLoader(dataset, batch_size=1, shuffle=False, sampler=None,
           batch_sampler=None, num_workers=0, collate_fn=None,
           pin_memory=False, drop_last=False, timeout=0,
           worker_init_fn=None, *, prefetch_factor=2,
           persistent_workers=False)

其参数:
在这里插入图片描述其中常用的参数有,dataset为要使用的数据集;batch_size为一次性要加载的数据个数;shuffle为是否打乱数据,True为打乱,False为不打乱;num_workers 我们加载数据为多进程还是单进程,如果是单进程就写0,如果是多进程就写>=1;在windows下如果是写多进程可能会报错,可以直接写成0,在Linux下如果有多进程则可以写多进程;drop_last为总共的数据除以batch_size是否希望有余数,若不希望有余数则True,若希望有余数则False

  • 其使用

简单粗暴上代码:

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

# 创建SummaryWriter模板
writer = SummaryWriter("logs")

# 创建transforms.ToTensor模板
tran_tensor = transforms.ToTensor()

# 创建 torchvision.datasets.CIFAR10
# root为datasets.CIFAR10的目录,train为是否是训练集;
# transforms做数据增强的方法,download数据集是否重新下载;
test_set = torchvision.datasets.CIFAR10(root ="./dataset",train=False,transforms=tran_tensor,download=True)

# 创建DataLoader 
# datasets加载数据集(test_set),batch_size一次性加载数据的个数;
# shuffle是否洗牌,True洗牌,False不洗牌;
# num_workers多线程,0为单线程,>=1为多线程(windows下可能会报错);
# drop_last最后剩余的数据集(总数据集个数除以一次性加载的数据数)是否舍取,False不舍取,True舍取;
test_loader = DataLoader(dataset=test_set,batch_size=64,shuffle=True,num_workers=0,drop_last=False)

# 测试shuffle writer.add_images,注意这里使用的是add_images,比以前多了s
# 输入了两个epoch看看里面的图片是不是一样的,如果不一样则证明shuffle=True洗牌成功!
for epoch in range(2):
	step = 0
	for data in test_loader:
		imgs,targets = data
		writer.add_images("Epoch:{}".format(epoch), imgs, step)
		step = step+1
writer.close()

run之后,输入命令行:

tensorboard --logdir=logs

在这里插入图片描述两个epoch,一样的step,里面的数据是不一样的,则证明shuffle=True成功!

上一章 6.初识Pytorch之torchvision中的数据集使用
下一章 8.初识Pytorch之nn.Module神经网络基本架构的使用

PyTorch 是一个开源的深度学习框架,通过使用 DataLoader 这个工具,能够更方便地处理数据集并进行准确率计算。 在使用 PyTorch 的过程中,使用 DataLoader 可以将数据集按照指定的 batch size 划分成小批量的数据,在训练过程中逐步提供给模型。这种处理方式不仅能够提高数据的处理效率,还能够减少内存的占用,提高训练的速度。 要计算准确率,首先需要定义一个计算准确率的函数,可以通过比较模型的预测结果和真实标签来判断是否预测正确。接下来,将数据加载到 DataLoader 中,并将其提供给模型进行训练或评估。 在模型评估的过程中,可以使用该准确率函数对模型在测试数据集上的表现进行评估。一般来说,将所有的样本都输入到模型中,获得预测的输出结果和真实标签进行对比,统计预测正确的样本数量,再将其除以总样本数量即可得到准确率。 使用 DataLoader 是非常方便的,在具体实现上,可以先定义一个自定义数据集类,通过重写 `__getitem__` 和 `__len__` 方法来获取样本数据和样本数量。然后,创建一个 DataLoader 对象,指定自定义数据集类实例,并设置 batch size、shuffle 等参数,最后遍历 DataLoader 对象获取每个小批量的数据进行训练或评估。 综上所述,PyTorch 使用 DataLoader 来处理数据集,非常方便并且高效。通过定义准确率计算函数和使用 DataLoader 来加载数据集,我们可以很容易地计算模型的准确率,并对模型进行评估和改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值