PyTorch - 15 - PyTorch数据集和数据加载器 - 深度学习和AI的训练集探索

本文介绍了如何在PyTorch中使用数据集和数据加载器处理深度学习项目。通过示例展示了如何探索Fashion-MNIST数据集,包括检查样本数量、类平衡性以及访问和显示数据。同时,详细解释了如何处理批量数据并绘制图像,为后续构建和训练模型打下基础。
摘要由CSDN通过智能技术生成

PyTorch Datasets And DataLoaders For Deep Learning

从高角度来看,我们仍处于深度学习项目的准备数据阶段。

  1. 准备数据
  2. 建立模型
  3. 训练模型
  4. 分析模型的结果

在这篇文章中,我们将看到如何使用在上一篇文章中创建的数据集和数据加载器对象。 请记住,在上一篇文章中,我们有两个PyTorch对象,一个数据集和一个DataLoader

1.train_set
2.train_loader

现在,我们准备看看如何使用这些对象,让我们开始吧。

PyTorch Dataset: Working With The Training Set

让我们先来看一些我们可以执行的操作,以更好地了解我们的数据。

Exploring The Data

要查看训练集中有多少张图片,我们可以使用Pythonlen()函数检查数据集的长度:

> len(train_set)
60000

根据我们在Fashion-MNIST数据集上的帖子中学到的知识,这个60000的数字是有意义的。 假设我们要查看每个图像的标签。 可以这样完成:

> train_set.targets
tensor([9, 0, 0, ..., 3, 0, 5])

在这里插入图片描述

第一个图像是9,接下来的两个是零。 请记住,过去的帖子中,这些值编码实际的类名称或标签。 例如,9踝靴,而0T恤
如果要查看数据集中每个标签有多少个,可以使用PyTorch bincount()函数,如下所示:

> train_set.targets.bincount()
tensor([6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000])

Class Imbalance: Balanced And Unbalanced Datasets

这向我们显示,Fashion-MNIST数据集在每个类别中的样本数量方面是统一的。 这意味着我们每个班级都有6000个样本。 结果,该数据集被认为是平衡的。 如果类的样本数量不同,我们将其称为不平衡数据集。

类不平衡是一个常见问题,但是在我们的案例中,我们刚刚看到Fashion-MNIST数据集确实是平衡的,因此我们不必为项目担心。

要了解有关减轻深度学习中不平衡数据集的方法的更多信息,请参阅本文:卷积神经网络中类不平衡问题的系统研究

Accessing Data In The Training Set

要访问训练集中的单个元素,我们首先将train_set对象传递给Python的iter()内置函数,该函数会返回一个代表数据流的对象。

对于数据流,我们可以使用Python内置的next()函数来获取数据流中的下一个数据元素。我们希望由此得到一个样本,因此我们将相应地命名结果:

> sample = next(iter(train_set))
> len(sample)
2

将样本传递给len()函数后,我们可以看到样本包含两个项目,这是因为数据集包含图像标签对。我们从训练集中检索的每个样本都包含图像数据作为张量和相应的标签作为张量。

由于样本是序列类型,因此我们可以使用序列拆包来分配图像和标签。现在,我们将检查图像和标签的类型,看看它们都是Torch.Tensor对象:


                
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值