Pytorch:使用官网提供数据集的相关参数设置,以CIFAR10为例进行说明

news2025/1/8 3:57:38

文章目录

  • 前言
  • 一、Dataset
    • 定义-组成
    • 分类
  • 二、获取数据集
    • 1.参数说明
    • 2.相关Demo


前言

本文记录笔者关于Dataset的相关学习记录,以Pytorch官网文档为主进行学习

一、Dataset

定义-组成

所谓Dataset,指的是我们在学习神经网络中要接触的数据集,一般由原始数据,标注Label及相关索引构成
这里笔者给出基于自己的理解所进行的论述,比方说,我们要训练一个识别猫和狗的神经网络,我们获取到的原始图像数据集组成大致如下

  • 一张狗的照片->二进制图像,可以理解为二维数组
  • 照片的Label->区分这张图片到底是猫还是狗,一般为int值,对应0或者1
  • 相关索引->一维数组或者二维数组的下标,根据下标Index获取到数据集的数据

分类

数据集按照其功能用途分,可分为训练集(train set)、测试集(validation set)和验证集(test set)

  • 训练集:训练集用来训练模型,即确定模型的权重和偏置这些参数,通常我们称这些参数为学习参数。
  • 测试集:而验证集用于模型的选择,更具体地来说,验证集并不参与学习参数的确定,也就是验证集并没有参与梯度下降的过程。验证集只是为了选择超参数,比如层数、网络节点数、迭代次数、学习率这些都叫超参数。比如在k-NN算法中,k值就是一个超参数。所以可以使用验证集来求出误差率最小的k。换句话说,笔者理解验证集并不参与反向传播的过程,也就是不会对网络的参数产生直接的负反馈指导,只对网络的结构产生参考影响。
  • 验证集:测试集只使用一次,即在训练完成后评价最终的模型时使用。它既不参与学习参数过程,也不参数超参数选择过程,而仅仅使用于模型的评价。值得注意的是,千万不能在训练过程中使用测试集,而后再用相同的测试集去测试模型。这样做其实是一个cheat,使得模型测试时准确率很高。

二、获取数据集

在使用Pytorch框架进行神经网络开发过程中,在引入torch包后,我们可以使用官网为我们提供的数据集相关命令进行数据集的获取和下载

1.参数说明

这里以CIFAR10为例,进行说明
在这里插入图片描述

root:表示dataset所存放的路径
train:表示训练集的种类划分,如果设置为true,则是训练集,如果为false,则为验证集
transform:表示对数据集中的数据进行处理获取到的变化后的数据,一般为ToTensor()
target_transform:一个函数,输入为target,输出对其的转换。例子,输入的是图片标注的string,输出为word的索引。
download:表示是否要进行下载,设置为True的时候,如果数据集不在本地,则会从云端对数据集进行下载

2.相关Demo

获取CIFAT10相关数据集的代码如下

import torchvision.datasets

train_data=torchvision.datasets.CIFAR10("../data",train=True,transform=torchvision.transforms.ToTensor(),
                                        download=True)

test_data=torchvision.datasets.CIFAR10("../data",train=False,transform=torchvision.transforms.ToTensor(),
                                        download=True)

# 数据集长度
train_lens=len(train_data)
test_lens=len(test_data)

print(train_lens)
print(test_lens)

运行效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/80300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计SSM基于的楼盘销售系统的设计与实现(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

关于近期虚拟化学习遇到的问题总结

一、关于Intel VT-x/EPT. 不使用虚拟化的Intel VT-x/EPT 因为需要在Linux中使用kvm做虚拟化因此需要开放宿主虚拟机的虚拟权限 但是打开报错 首先想要开启虚拟化,你的cpu是一定要支持虚拟化的 如何查看呢,可以ctrlaltdel打开任务管理器 点击性能 可以看…

电子加速器原理与应用

辐射单位 射线能量ϵ\epsilonϵ,单位eVeVeV ϵhν\epsilon h\nuϵhν,普朗克常数hhh,电磁波频率ν\nuν 电子伏特eVeVeV:一个电子(电量为1.610C)经过1VVV的电位差加速后获得的动能。 1eV1.610−19J1.610−…

计及碳捕集电厂低碳特性的含风电电力系统源–荷多时间尺度调度方法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

[附源码]Python计算机毕业设计SSM基于的楼盘销售管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Java基本微信小程序的适老化老人健康预警系统 springboot+vue

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&#xf…

LinkedList(Java8)个人理解

问题:LinkedList 的 Node 怎么理解? Node 是 LinkedList 的私有静态内部类,作为链表结构的基本元素,可以看作是链条上的一个节(结)点。一个 node 对象中除了存储元素的值外,还存储着前一个 nod…

【软件测试】测试员vs测试工程师,你是测试员还是测试工程师?

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 不是什么时候&#…

[Java] 序列化(Serialization)的本质是什么?在Java中怎么实现?为什么要了解序列化技术?序列化技术选型要点是什么?

文章目录前言序列化是什么?理解对象在内存中是如何存储的数据在进程内存中的分布图数据被序列化之后在内存中的分布图序列化/反序列化的本质?序列化在Java中的实现?1. JDK Serialization(不推荐使用)2. 第三方实现&…

本地完成Vue脚手架和Django建立连接

目录 在Vue中 setting.py中: urls.py中 首先把要连接的Django项目和Vue脚手架创建好 之后我们把整个Vue拖到Django的文件夹根目录下,于manage.py同级即可(图中data-work为我的Vue) 在Vue中 进入到vue.config.js文件夹下 添加as…

全栈Jmeter接口测试(三):jmeter利用察看结果树查看响应调试取样器(Debug Sampler),设置HTTP信息头管理器模拟请求头

Jmeter(5):jmeter利用察看结果树查看响应&调试取样器(Debug Sampler) 察看结果树选项介绍: 名称:本属性用于标识一个察看结果树元件,建议使用一个有意义的名称 注释:对于测试没有任何作用,仅用户记录用…

初级西班牙语教程

初级西班牙语教程 通过使用我的简化方法变得会话和流利的完整指南学习西班牙语 课程英文名:Spanish Made Simple Beginner Spanish 此视频教程共28.0小时,中英双语字幕,画质清晰无水印,源码附件全 下载地址 课程编号&#xff…

MySQL MVCC详解

为什么需要MVCC 在没有MVCC之前,是使用读写锁(共享锁/排它锁)来进行并发控制的,读锁和读锁之间不互斥,写锁和读锁互斥,写锁和写锁互斥。 但是频繁加锁会导致数据库性能低下,这时出现了一种不加…

数字脉冲参数

脉冲幅度vm。脉冲电压波形变化的最大值,单位为伏(v)。脉冲上升时间tr。脉冲波形从0.1vm上升到0.9vm所需的时间。脉冲下降时间tf。脉冲波形从0.9vm下降到0.1vm所需的时间。 脉冲上升时间tr和下降时间tf越短,越接近于理想的短形脉冲…

Redis实战——Redisson分布式锁

目录 1 基于Redis中setnx方法的分布式锁的问题 2 Redisson 2.1 什么是Redisson 2.2 Redisson实现分布式锁快速入门 2.3 Redisson 可重入锁原理 什么是可重入锁? Redisson中又是如何实现的呢? 2.4 Redisson分布式锁的可重试性 2.5 Redisson分布式锁的主从…

【C语言经典题目】调整奇数偶数顺序、有序序列合并以及有序序列判断

目录 一、调整奇数偶数顺序 1.思路一(使用多个数组) ①使用两个数组(双指针法) ②使用三个数组 2.思路二(不创建其他的数组,双指针) 二、有序数组合并 1.思路一 2.思路二 三、有序序列判…

【springboot进阶】基于starter项目构建(二)构建starter项目-mysql

目录 一、创建 mysql-spring-boot-starter 项目 二、添加 pom 文件依赖 三、构建配置 1. mybatis-plus分页配置 MybatisPlusConfig 2. mybatis-plus代码生成器 CodeGenerator 四、加载自动化配置 五、打包 六、使用 这个系列讲解项目的构建方式,主要使用 父…

第二证券|事关A股!4万亿外资巨头最新研判

时值年末,在多重利好音讯提振下,我国股市迎来一波反弹,海外本钱大举加仓我国财物。下一年全球经济将走向何方?国内和海外商场又会有哪些变化?财物装备该怎样做?近期,联博资深商场策略师黄森玮、…

PyTorch - Cifar 数据集

文章目录项目说明cifar-10 数据集介绍代码实现构建数据集、加载器构建 卷积网络训练数据构建 VGG 加深网络训练测试项目说明 cifar-10 数据集介绍 cifar-10 数据集由 60000 张分辨率为 32x32 彩色图像组成; 共分为 10 类,每类包含 6000 张图像&#xff…

深入理解mysql的索引分类,覆盖索引,覆盖索引失效,回表,MRR

MySql系列整体栏目 内容链接地址【一】深入理解mysql索引本质https://blog.csdn.net/zhenghuishengq/article/details/121027025【二】深入理解mysql索引优化以及explain关键字https://blog.csdn.net/zhenghuishengq/article/details/128273593【三】深入理解mysql的索引分类&a…