手写数字识别的数据集讲解

news/2024/5/10 13:57:33/文章来源:https://blog.csdn.net/weixin_43845922/article/details/127262377

CLASS torchvision.datasets.MNIST(root: str, train: bool = True, transform: Optional[Callable] = None, target_transform: Optional[Callable] = None, download: bool = False)

  • root (string): 表示数据集的根目录,其中根目录存放MNIST/processed/training.pt和MNIST/processed/test.pt的子目录
  • train (bool, optional): 如果为True,则从training.pt创建数据集,否则从test.pt创建数据集
  • download (bool, optional): 如果为True,则从internet下载数据集并将其放入根目录。如果数据集已下载,则不会再次下载
  • transform (callable, optional): 接收PIL图片并返回转换后版本图片的转换函数
    target_transform (callable, optional): 接收PIL接收目标并对其进行变换的转换函数

在这里插入图片描述
文件下载地址:官网
http://yann.lecun.com/exdb/mnist/
Mnist数据集包括4个文件
train-images-idx3-ubyte.gz: 训练集图像(9912422 bytes)
train-labels-idx1-ubyte.gz: 训练集标签 (28881 bytes)
t10k-images-idx3-ubyte.gz: 测试集图像 (1648877 bytes)
t10k-labels-idx1-ubyte.gz: 测试集标签 (4542 bytes)

gz为压缩文件,首先要解压这些文件idx3的数字表示数据维度,即图像为3维,标签是1维的
图像的3个维度分别为:
训练集图像28pix28pix60000张
测试集图像28pix28pix10000张
MNIST的格式解析
在这里插入图片描述
首先,offset是偏置,实际上就是一个标号,记录这个字段起始位置在这串数据的第几个字节。拿第一行举例子,从0000的位置开始,(这个0000是16进制,每个16进制位表示是4bit),从0000开始到0003结束,实际上是4字节 = 32bit,所以可以看到这个offset字段的数据类型type是32位整数。这个字段数据为0000 0801 用十进制来说就是2049。description是这个字段数据的含义,这个字段存放的801(也就是十进制2049),意思是魔数(magic number),大概就是确定数据类型的一个标志,是随便设定的
参考博客
对于标签文件
用sublime打开这个ubyte文件
在这里插入图片描述
第一个数据为32位,读取前32bit, 00000801,因为里面的数是16进制的,即一位代表4bit
第二个数据也是32位,接着读32bit, 0000ea60(十进制为60000,即训练集有60000张图片)
从第三个数据开始,就是真正要用的标签了。类型是无符号数,是1个字节,即8bit,往后读两个数字,即05,可以看出这一行数据存放的标签为5, 0, 4, 1, 9, 2, 1, 3

对于图像数据文件
在这里插入图片描述
在这里插入图片描述
第一个数据为32位,读取前32bit, 00000803,因为里面的数是16进制的,即一位代表4bit
第二个数据也是32位,接着读32bit, 0000ea60(十进制为60000,即训练集有60000张图片)
第三个数据也是32位,接着读32bit, 0000001c(十进制为28,即图片的行为28pix)
第四个数据也是32位,接着读32bit, 0000001c(十进制为28, 即图片的列为28pix)
每个无符号数表示一个像素,可以根据description看出,图像是2828的,往后每2828个像素位为一幅图像。读取出来是一行数据,之后恢复成方形矩阵就可以了

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【初学者】Vue使用axios向Node.js发起请求以及跨域问题的解决

目录 项目创建 代码 解决跨域问题 几个注意点 运行结果展示 axios官方文档:起步 | Axios 中文文档 | Axios 中文网 项目创建 本文实例用到的两个项目,分别命名为server和vue-axios。 server是node.js项目,创建方式: # 创建…

Codeforces Round #825 (Div. 2)

A. Make A Equal to B Sample input 5 3 1 0 1 0 0 1 4 1 1 0 0 0 1 1 1 2 1 1 1 1 4 1 0 0 1 0 1 1 0 1 0 1 Sample output 1 2 0 1 1 题意: 你有两个长度为n的数组a和b,你可以进行一次操作,将a数组的某个位置的数取反,或者…

LVM与磁盘配额

分区的缺点: 1、一旦建立无法修改 想修改得重新格式化 数据丢失 2、不够灵活 空间只能来自一块硬盘,且必须是连续的空间 3、没有备份冗余功能 需要工程师手动备份如果没有lvm可以下载:yum install lvm2 -y LVM的管理命令 主要命令:LVM为我们提供了逻辑概念上的磁盘,使得文…

usb sop and eop

USB包(packet)由SOP,SYNC,Packet内容和EOP组成. SOP信号-------------瞬态信号 协议中的描述:7.1.7.4.1 The start of a packet (SOP) is signaled by the originating port by driving the D and D- lines from the Idle state to the opposite logic level (K …

实验六:倾斜开关实验

OK,周一周二一共10节课,比较辛苦,昨天下午还有咨询师模拟演练,很累,就早早休息了 今天早上就想写一个实验指导书 也就是现在的实验六 一会十点有《C语言程序设计》的课,不过,今天好在就只有两节课(课时,一次大课2个课时,习惯说2节课) 感觉又是我最喜欢和擅长的C…

JSON——简介

JSON——简介 JSON——基础语法 JSON——json数据与java对象的转换// 将java对象转为json字符串User user = new User(1,"zahngsan","123");// 转换String jsonString = JSON.toJSONString(user);System.out.println(jsonString);// 将json字符串转为jav…

java基于vue+springboot 的体育用品销售购物网站 多商家 nodejs

用户在打开网站之后首先打开的是首页部分,在首页部分可以看到一些推荐的信息 环境需要 1.运行环境:最好是java jdk 1.8,这是目前最稳定的JDK也是被使用最多的JDK版本。 2.IDE环境:IDEA,Eclipse都可以。推荐IDEA; 3.to…

移动端IM产品RainbowChat[专业版] iOS端 v6.0版已发布!

关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、标准Java平台,服务端基于Netty编写。 工程开源地址是&…

分治法实现二分查找(python)

问题描述: 改写二分查找算法:设a[1…n]是一个已经排好序的数组,改写二分查找算法: 当搜索元素x不在数组中时,返回小于x的最大元素位置i,和大于x的最小元素位置j; (即返回x的左、右2个元素) 当搜索元素x在…

系动词使役动词

系动词 系动词的作用就是赋值 I am a rabbit 把 a rabbit赋值给i我 我是一只兔子 The rabbit is smart 这兔子是聪明的 smart赋值给兔子 系动词连系的方式,就是简简单单把它前后的概念含义连起来而已 所以系动词又叫连系动词 (Linking Verb) 就是把前后两端连起来(link)就好…

基于侧影轮廓的三维模型构建

建模过程 图像的获取 由于待建模物体具有较多细节,因此选择在同一个方向拍摄两个角度的照片(手机倾斜角大约为60度和45度,如下图所示),以及顶部细节照片,最终拍摄的有效照片为35张。模型构建 新建项目,并导入所有拍摄的照片照片掩饰 可以先采用自动掩饰工具将物体轮廓从…

kotlin koin

介绍 Koin是一个面向Android developer的依赖注入框架使用场景 为什么要用依赖注入框架? 比如我们有一个下载器对象Downloader,需要下面三个对象才能完成构造。但是这个下载器对象在各个活动中使用频繁val executor = Executor() val client = HttpClient() val request = Re…

使用 Zpan 搭建低成本个人私有网盘,还不限速

摘要:本文就介绍一个不限速的低成本个人网盘——ZPan,相较于老牌的私有网盘 OwnCloud 等,Zpan 有一个独有的优势:不限速。本文分享自华为云社区《使用 Zpan 搭建低成本个人私有网盘》,作者: 云存储开发者支…

甘特图:制定项目计划的三个要点

任何事情都要有计划,这样才能保证自己的事情按照既定的目标和轨迹推进 制定计划首先要明确以下三点: 1、目标明确:做这个项目是做什么的要达成什么目标。 2、任务明确:达成这个目标要做哪些事,有具体的实施推进步骤。…

MP-SPDZ详细介绍

基础知识概述 隐私计算底层协议包括两种:其一是基础的加密传输协议,用于信息分发,包括不经意传输、秘密分享、同态加密、零知识证明等。其二是加密计算协议,包括乱码电路、同态加密、零知识证明等。 不经意传输是所有隐私计算协…

python 运行错误收集

目录global全局声明错误 global全局声明错误 SyntaxError: name is_login is used prior to global declaration 解决办法:global is_login 放在 if is_login:的上面 is_login = Falsedef login_auth(func_name):def inner(*args, **kwargs):if is_login:res = func_name(*arg…

AlphaZero强化学习模型

搬来了DeepMind的AlphaTensor DeepMind前不久发在Nature上的论文Discovering faster matrix multiplication algorithms with reinforcement learning引发热议。 这篇论文在德国数学家Volken Strassen「用加法换乘法」思路和算法的基础上,构建了一个基于AlphaZero…

[GWCTF 2019]我有一个数据库

打开题目是乱码,好奇怪 御剑扫一下 扫到了phpmyadmin 版本为4.8.1 这个版本是有漏洞的(CVE-2018-12613),复现一下 部分源码: $target_blacklist array (import.php, export.php ); ​ // If we have a valid target…

SpringBoot统一处理返回格式

在对接第三方接口的时候,第三方接口返回格式形式为{"result":null,"status":1010},虽然返回了状态码,但是状态码对应的描述信息并没有携带,前端在使用的时候需要根据状态码返回一个友好的提示,如此…

刘韧:我每时每刻都会注意管理自己的知识

1. 担心总能让我积极行动起来。2. 要提早主动求变,不要等到被迫地、见招拆招地应变。3. 很多愚蠢的念头,都源于自己分内的事,却老想让别人负责,比如将自己的愿望寄托在子女身上。4. 推卸责任的同时,多少会对等地给予一…