动手学深度学习(2)-3.5 图像分类数据集

这篇具有很好参考价值的文章主要介绍了动手学深度学习(2)-3.5 图像分类数据集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

  • 这里主要是看一下如何加载数据集,并且生成批次训练的数据。
  • 最大的收获是,知道了如何在训练阶段提高模型训练的性能
    • 增加batch_size
    • 增加num_worker
    • 数据预加载

正文

图像分类数据集

主要包介绍
  • 这个模块主要是将如何加载数据集,并且生成一个迭代器,每一次访问都会俺批次生成数据。

  • 具体应用到以下几个功能:

    • torchvision.datasets:获取数据集

      • 这个包拥有很多用于计算机视觉处理的功能,这个包主要有一些公开常用的计算机的视觉数据集,比如说mnist还有fashion-mnist等。

      • 这个包中的数据集可以直接被dataloader调用,会方便很多

      • dataset这个类还可以被继承实现,制作自己的dataset类

    • transforms

      • 图像预处理还有数据增强功能专用包,可以单独使用,也可以多个功能按照顺序进行组合compose,作为一个预处理函数。
    • utils.data.DataLoader

      • 自动批量加载或训练数据的功能
主要流程
  • 在加载数据集时,需要按照如下流程进行处理:
    • 制定数据预处理的环节,并组合为完整的流程

      • 使用transform实现图片的剪裁还有重置大小等基本预处理操作
      • 将所有操作进行组合
    • 获取数据集,并转为dataset类

      • 继承或者直接使用torchvision.dataset类
    • 生成批量获取数据集dataloader加载生活器

      • 生成DataLoader实例
    • 逐批次验证数据集

具体代码
def load_data_fashion_mnist(batch_size, resize=None):  #@save
    """下载Fashion-MNIST数据集,然后将其加载到内存中"""
    trans = [transforms.ToTensor()]
    if resize:
        trans.insert(0, transforms.Resize(resize))
    trans = transforms.Compose(trans)
    mnist_train = torchvision.datasets.FashionMNIST(
        root="../data", train=True, transform=trans, download=True)
    mnist_test = torchvision.datasets.FashionMNIST(
        root="../data", train=False, transform=trans, download=True)
    return (data.DataLoader(mnist_train, batch_size, shuffle=True,
                            num_workers=get_dataloader_workers()),
            data.DataLoader(mnist_test, batch_size, shuffle=False,
                            num_workers=get_dataloader_workers()))

# 逐批次遍历数据
train_iter, test_iter = load_data_fashion_mnist(32, resize=64)
for X, y in train_iter:
    print(X.shape, X.dtype, y.shape, y.dtype)
    break
练习

问题一

  • 在加载训练参数的过程中,影响模型的性能的参数有哪些?

    • batch_size:表示加载到内存中的数据量,越大,所需要的内存越多,反之亦然。

    • DataLoader(num_workers = ?) :表示用于加载数据的线程数,线程越多,加载的越快,同样的需要的内存越多

问题二

  • pytorch中的数据迭代器的性能非常重要,有哪些方式可以改进它?
    • DataLoader 的 persistent_workers 参数
      • 控制在每一个训练epoch后不需要关闭或者重启数据加载工作的进程
      • persistent_worker = True
    • 使用数据预取Prefetching
      • GPU在执行任务的同时,CPU可以预先加载下一批数据
    • num_wokrer
      • 提高加载数据的进程数量,提高运算效率
    • pin_memory加速数据传输
      • pin_memory = True
      • 加速数据从CPU到GPU的过程

pytorch提供的其他的数据集

图像分类数据集

CIFAR-10/CIFAR-100: 包含 10 类(CIFAR-10)或 100 类(CIFAR-100)的小图像。
MNIST: 手写数字数据集。
Fashion-MNIST: 与 MNIST 类似,但用于衣物分类。
ImageNet: 一个大规模的图像分类数据集。
SVHN (Street View House Numbers): 用于数字识别的街景房号数据集。

目标检测和分割数据集

COCO (Common Objects in Context): 用于多种视觉任务,包括目标检测、图像分割和标注。
VOC (Pascal Visual Object Classes): 包括图像分类、目标检测和图像分割任务。
Cityscapes: 用于城市场景理解,包括语义分割和实例分割。

其他文章来源地址https://www.toymoban.com/news/detail-708473.html

CelebA: 用于面部属性识别的大规模人脸属性数据集。
STL-10: 用于自我监督学习和图像分类的数据集。
Omniglot: 包含多种语言的字符,用于一次学习和其他语言任务。
EMNIST: 扩展的 MNIST 数据集,包括字母和数字。

总结

  • 很多的东西,还是要自己系统地了解一下,不然很多东西都不了解,现在知道了。继续弄吧,这都是欠下的技术债。

到了这里,关于动手学深度学习(2)-3.5 图像分类数据集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 三 动手学深度学习v2 —— Softmax回归+损失函数+图片分类数据集

    softmax回归 损失函数 1. softmax回归 回归vs分类: 回归估计一个连续值 分类预测一个离散类别 从回归到多类分类 回归 单连续数值输出 自然区间R 跟真实值的误差作为损失 分类 通常多个输出 输出i是预测为第i类的置信度 总结: 2. 损失函数 L2 loss 均方损失 l ( y , y ′ ) = 1 2 ( y −

    2024年02月14日
    浏览(24)
  • 【深度学习】 图像识别实战 102鲜花分类(flower 102)实战案例

    本文主要对牛津大学的花卉数据集flower进行分类任务,写了一个具有普适性的神经网络架构(主要采用ResNet进行实现),结合了pytorch的框架中的一些常用操作,预处理、训练、模型保存、模型加载等功能 在文件夹中有102种花,我们主要要对这些花进行分类任务 文件夹结构

    2024年02月06日
    浏览(33)
  • 计算机视觉——飞桨深度学习实战-图像分类算法原理与实战

    图像分类是深度学习在视觉领域第一个取得突破性成果的任务。本章首先介绍了图像分类任务的发展历程与评价指标。然后分为三个角度分别介绍了在图像分类领域具有重要地位的三种模型。第一种是基于残差网络的模型,本章重点介绍了ResNet、DenseNet和DPN。第二种是基于T

    2024年02月02日
    浏览(40)
  • 深度学习图像分类实战——pytorch搭建卷积神经网络(AlexNet, LeNet, ResNet50)进行场景图像分类(详细)

    目录 1  一、实验过程 1.1  实验目的 1.2  实验简介 1.3  数据集的介绍 1.4  一、LeNet5网络模型 1.5  二、AlexNet网络模型 1.6  三、ResNet50(残差网络)网络模型  二、实验代码 导入实验所需要的库  参数配置 数据预处理 重新DataSet 加载数据转为DataLoader函数 可视化一批训练

    2024年02月05日
    浏览(48)
  • 项目实战解析:基于深度学习搭建卷积神经网络模型算法,实现图像识别分类

    随着人工智能的不断发展,深度学习这门技术也越来越重要,很多人都开启了学习机器学习,本文将通过项目开发实例,带领大家从零开始设计实现一款基于深度学习的图像识别算法。 学习本章内容, 你需要掌握以下基础知识: Python 基础语法 计算机视觉库(OpenCV) 深度学习

    2024年02月03日
    浏览(42)
  • 机器学习&&深度学习——图像分类数据集

    👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习深度学习——softmax回归(下) 📚订阅专栏:机器学习深度学习 希望文章对你们有所帮助 我们使用Fashion-MNIST数据集,来作为我们的图像分类数据集。 可以通过框架内的内置函数将数据集下

    2024年02月15日
    浏览(53)
  • 【动手学深度学习】--18.图像增广

    官方笔记:图像增广 学习视频:数据增广【动手学深度学习v2】 图像增广在对训练图像进行一系列的随机变化之后,生成相似但不同的训练样本,从而扩大了训练集的规模。 此外, 应用图像增广的原因是,随机改变训练样本可以减少模型对某些属性的依赖,从而提高模型的

    2024年02月11日
    浏览(37)
  • 大数据毕业设计 深度学习垃圾图像分类系统 - opencv python

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月02日
    浏览(48)
  • 【AI】《动手学-深度学习-PyTorch版》笔记(十一):分类问题-softmax回归

    1)连续值与离散值 线性回归模型,适用于输出为连续值的情景。 softmax回归模型,适用于输出为离散值的情景。例如图像类别,就需要对离散值进行预测。softmax回归模型引入了softmax运算,使输出更适合离散值的预测和训练。 2)输出个数 线性回归模型,输出单元为1个,而

    2024年02月14日
    浏览(38)
  • 大数据毕设项目 - opencv python 深度学习垃圾图像分类系统

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月21日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包