MNIST 数据集下载 与 保存为图片格式
下载地址
http://yann.lecun.com/exdb/mnist/
文件说明
文件名
- train-images.idx3-ubyte.gz:训练集图片(9912422字节),55000张训练集,5000张验证集
- train-labels.idx1-ubyte.gz:训练集图片对应的标签(28881字节),
- t10k-images.idx3-ubyte .gz:测试集图片(1648877字节),10000张图片
- t10k-labels.idx1-ubyte.gz:测试集图片对应的标签(4542字节)
文件格式
TRAINING SET LABEL FILE (train-labels.idx1-ubyte)
offset | type | value | description |
---|---|---|---|
0000 | 32 bit integer | 0x00000801(2049) | magic number (MSB first) |
0004 | 32 bit integer | 60000 | number of items |
0008 | unsigned byte | 0/1/2/3/4/5/6/7/8/9 | label |
0009 | unsigned byte | 0/1/2/3/4/5/6/7/8/9 | label |
… | … | … | … |
xxxx | unsigned byte | 0/1/2/3/4/5/6/7/8/9 | label |
TRAINING SET IMAGE FILE (train-images-idx3-ubyte):
offset | type | value | description |
---|---|---|---|
0000 | 32 bit integer | 0x00000803(2051) | magic number |
0004 | 32 bit integer | 60000 | number of images |
0008 | 32 bit integer | 28 | number of rows |
0012 | 32 bit integer | 28 | number of columns |
0016 | unsigned byte | ?? | pixel |
0017 | unsigned byte | ?? | pixel |
… | … | … | … |
xxxx | unsigned byte | ?? | pixel |
TEST SET LABEL FILE (t10k-labels-idx1-ubyte):
offset | type | value | description |
---|---|---|---|
0000 | 32 bit integer | 0x00000801(2049) | magic number (MSB first) |
0004 | 32 bit integer | 10000 | number of items |
0008 | unsigned byte | 0/1/2/3/4/5/6/7/8/9 | label |
0009 | unsigned byte | 0/1/2/3/4/5/6/7/8/9 | label |
… | … | … | … |
xxxx | unsigned byte | 0/1/2/3/4/5/6/7/8/9 | label |
TEST SET IMAGE FILE (t10k-images-idx3-ubyte):
offset | type | value | description |
---|---|---|---|
0000 | 32 bit integer | 0x00000803(2051) | magic number |
0004 | 32 bit integer | 10000 | number of images |
0008 | 32 bit integer | 28 | number of rows |
0012 | 32 bit integer | 28 | number of columns |
0016 | unsigned byte | ?? | pixel |
0017 | unsigned byte | ?? | pixel |
… | … | … | … |
xxxx | unsigned byte | ?? | pixel |
保存为图片格式
# 导入包
import struct
import numpy as np
from PIL import Imageclass MnistParser:# 加载图像def load_image(self, file_path):# 读取二进制数据binary = open(file_path,'rb').read()# 读取头文件fmt_head = '>iiii'offset = 0# 读取头文件magic_number,images_number,rows_number,columns_number = struct.unpack_from(fmt_head,binary,offset)# 打印头文件信息print('图片数量:%d,图片行数:%d,图片列数:%d'%(images_number,rows_number,columns_number))# 处理数据image_size = rows_number * columns_numberfmt_data = '>'+str(image_size)+'B'offset = offset + struct.calcsize(fmt_head)# 读取数据images = np.empty((images_number,rows_number,columns_number))for i in range(images_number):images[i] = np.array(struct.unpack_from(fmt_data, binary, offset)).reshape((rows_number, columns_number))offset = offset + struct.calcsize(fmt_data)# 每1万张打印一次信息if (i+1) % 10000 == 0:print('> 已读取:%d张图片'%(i+1))# 返回数据return images_number,rows_number,columns_number,images# 加载标签def load_labels(self, file_path):# 读取数据binary = open(file_path,'rb').read()# 读取头文件fmt_head = '>ii'offset = 0# 读取头文件magic_number,items_number = struct.unpack_from(fmt_head,binary,offset)# 打印头文件信息print('标签数:%d'%(items_number))# 处理数据fmt_data = '>B'offset = offset + struct.calcsize(fmt_head)# 读取数据labels = np.empty((items_number))for i in range(items_number):labels[i] = struct.unpack_from(fmt_data, binary, offset)[0]offset = offset + struct.calcsize(fmt_data)# 每1万张打印一次信息if (i+1)%10000 == 0:print('> 已读取:%d个标签'%(i+1))# 返回数据return items_number,labels# 图片可视化def visualaztion(self, images, labels, path):d = {0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0}for i in range(images.__len__()):im = Image.fromarray(np.uint8(images[i]))im.save(path + "%d_%d.png"%(labels[i], d[labels[i]]))d[labels[i]] += 1# im.show()if (i+1)%10000 == 0:print('> 已保存:%d个图片'%(i+1))# 保存为图片格式
def change_and_save():mnist = MnistParser()trainImageFile = './train-images.idx3-ubyte'_, _, _, images = mnist.load_image(trainImageFile)trainLabelFile = './train-labels.idx1-ubyte'_, labels = mnist.load_labels(trainLabelFile)mnist.visualaztion(images, labels, "./images/train/")testImageFile = './train-images.idx3-ubyte'_, _, _, images = mnist.load_image(testImageFile)testLabelFile = './train-labels.idx1-ubyte'_, labels = mnist.load_labels(testLabelFile)mnist.visualaztion(images, labels, "./images/test/")# 测试
if __name__ == '__main__':change_and_save()
MNIST 数据集下载 与 保存为图片格式相关推荐
- python 读取 MNIST 数据集,并解析为图片文件
python 读取 MNIST 数据集,并解析为图片文件 MNIST 是 Yann LeCun 收集创建的手写数字识别数据集,训练集有 60,000 张图片,测试集有 10,000 张图片.数据集链接 ...
- MNIST数据集下载及可视化
MNIST数据集介绍 MNIST数据集官网:http://yann.lecun.com/exdb/mnist/ MNIST数据库是非常经典的一个数据集,就像你学编程起初写一个"Hello W ...
- 通过谷歌浏览器将当前页面保存为图片格式
打开你需要保存为图片格式的页面,按F12打开控制台 在控制台按ctrl+shift+p然后出现输入框,输入full,然后回车 然后它会将当前网页转换为png图片格式,然后下载到谷歌的默认存储位置 转换 ...
- Python 手写数字识别 MNIST数据集下载失败
目录 一.MNIST数据集下载失败 1 失败的解决办法(经验教训): 2 亲测有效的解决方法: 一.MNIST数据集下载失败 场景复现:想要pytorch+MINIST数据集来实现手写数字识别,首先就 ...
- vuejs项目前端纯js在线下载网页内容保存为自定义格式的word文件、另存为word文件
所有前端导入导出方法集合: 前端必备技能知识:JS导出Blob流文件为Excel表格.Vue.js使用Blob的方式实现excel表格的下载(流文件下载)_勤动手多动脑少说多做厚积薄发-CSDN博客_ ...
- uniapp 小程序 APP 实现手写板 签名 画图 canvas 保存为图片格式
文章目录 uniapp 小程序 APP 实现手写板 签名 画图 canvas 保存为图片格式 一.手写板 1.H5代码 2.JS代码 总结 uniapp 小程序 APP 实现手写板 签名 画图 can ...
- 深度学习入门-基于Python的理论入门与实现源代码加mnist数据集下载推荐
深度学习入门-基于Python的理论入门与实现源代码加mnist数据集下载推荐 书籍封面 1-图灵网站下载 书里也说了,可以图灵网站下载https://www.ituring.com.cn/book/ ...
- MNIST数据集下载+idx3-ubyte解析【超详细+上手简单】
前言 训练模型的时候经常会使用MNIST数据集来训练模型,那么如何获取到MNIST数据集呢?博主经过实践后,总结了经验,希望能帮助到屏幕前的你使用MNIST数据集. 目录 前言 1 下载MNIST数据 ...
- mnist数据集读取并保存为Numpy数组
背景信息 MNIST数据集简介 MNIST数据集是从 NIST 的Special Database 3(SD-3)和Special Database 1(SD-1)构建而来.由于SD-3是由美国人口调 ...
- 手写数字识别MNIST数据集下载百度网盘链接快速下载
介绍 MNIST数据集是机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28 * 28像素的灰度手写数字图片. 下载 官方链接:http://ya ...
最新文章
- lvs(+keepalived)、haproxy(+heartbeat)、nginx 负载均衡的比较分析
- Python-OpenCV 杂项(一):图像绘制
- file_get_contents遍历api数据
- 【ES8(2017)】async / await
- java glassfish_java - Tomcat,JBoss和Glassfish有什么区别?
- spring-mvc.xml与spring-mybatis.xml配置文件中命名空间问题
- 20190922 On Java8 第二十一章 数组
- RadioButton设置图片大小
- kippo mysql_浅析开源蜜罐识别与全网测绘
- Bootstrap 框架-下拉菜单
- step5: 编写spider爬取
- php属相对应年份博客,生肖年份的起点
- 常见的hash函数算法
- 编译Linux内核没有zImage,Linux 编译系统的简单介绍与内核编译安装
- 微信小程序毕业设计论文求职招聘|兼职管理系统+后台管理项目源代码
- 基于51单片机的压力监测仪(MPX4115)(Proteus仿真+程序)
- 阿里高级技术专家张建飞:面对复杂业务,if-else coder 如何升级?
- 抖音小店无货源选品技巧分享,都是最简单的选品方法,一学就会
- VC2015 qt 打包发布
- 自动控制原理 第二讲 传递函数
热门文章
- python入门基础语法答案_第一阶段:Python开发基础 Python基础语法入门 day03 课后作业...
- 学计算机编程有什么用,编程是什么 学习编程的好处
- 细等线体cass_CASS打开图形出现字体替换怎么解决?
- 「业务架构」商业模式画布
- 数字信号处理matlab版答案,数字信号处理(MATLAB版)
- Ardusub源码解析学习(二)——电机库
- 怎么安装mysql5.6.19_centos6.5 rpm安装mysql5.6.19操作及步骤
- java8以及常见编程技术Api中文版手册
- Mifare Classic Tool (MCT),Android平台RFID工具
- 流水作业c语言代码,C语言流水灯