读取MNIST数据集并保存为图片

文章目录# MNIST数据集简介
摘要由CSDN通过智能技术生成


MNIST数据集简介

MNIST是一个手写数字的数据库,它由一个包含有60000个样本的训练集和一个包含有10000个样本的测试集组成。数据集中所有的手写数字都已经被标准化,并且以固定大小的图像形式保存。
完整数据集可从MNIST数据集的官网THE MNIST DATABASE of handwritten digits上进行下载。
下载完成后,解压即可得到我们所需的数据集。

MNIST数据集文件格式

数据集用字节形式进行存储,采用MSB(Most Significant Bit) first模式,即大端模式。
MNIST数据集由四个文件组成:

文件名 说明
train-images-idx3-ubyte 训练集图片
train-labels-idx1-ubyte 训练集标签
t10k-images-idx3-ubyte 测试集图片
t10k-labels-idx1-ubyte 测试集标签

train-images-idx3-ubyte

字节偏移量 数据类型 数值 说明
0000 32 bit integer 0x00000803(2051) 魔数
0004 32 bit integer 60000 图片数量
0008 32 bit integer 28 图片像素的行数(row)
0012 32 bit integer 28 图片像素的列数(column)
0016 unsigned byte ?? 像素的值
0017 unsigned byte ?? 像素的值
xxxx unsigned byte ?? 像素的值

像素按行排列。 像素值为0到255。0表示背景(白色),255表示前景(黑色)。

train-labels-idx1-ubyte

字节偏移量 数据类型 数值 说明
0000 32 bit integer 0x00000801(2049) 魔数 (MSB first)
0004 32 bit integer 60000 标签数量
0008 unsigned byte ?? 标签值
0009 unsigned byte ?? 标签值
xxxx unsigned byte ?? 标签值

标签的值为0到9的整数。

t10k-images-idx3-ubyte

字节偏移量 数据类型 数值 说明
0000 32 bit integer 0x00000803(2051) 魔数
0004 32 bit integer 10000 图片数量
0008 32 bit integer 28 图片像素的行数(row)
0012 32 bit integer 28 图片像素的列数(column)
0016 unsigned byte ?? 像素的值
0017 unsigned byte ?? 像素的值
xxxx unsigned byte ?? 像素的值

像素按行排列。 像素值为0到255。0表示背景(白色),255表示前景(黑色)。

t10k-labels-idx1-ubyte

字节偏移量 数据类型 数值 说明
0000 32 bit integer 0x00000801(2049) 魔数 (MSB first)
0004 32 bit integer 10000 标签数量
0008 unsigned byte ?? 标签值
0009 unsigned byte ?? 标签值
xxxx unsigned byte ?? 标签值

标签的值为0到9的整数。

读取方法

open() 函数

文件以二进制格式进行存储,我们同样的也就需要用二进制格式进行读取。所以我们在使用Python的open()函数时,需指明模式为rb,即以二进制格式打开一个文件用于只读。

f = open(file_name, "rb")

open()将打开一个文件,创建一个file对象,这时调用相关方法便可以对文件进行读写。

file.read(size)

size

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值