下载地址

http://yann.lecun.com/exdb/mnist/

文件说明

文件名

  1. train-images.idx3-ubyte.gz:训练集图片(9912422字节),55000张训练集,5000张验证集
  2. train-labels.idx1-ubyte.gz:训练集图片对应的标签(28881字节),
  3. t10k-images.idx3-ubyte .gz:测试集图片(1648877字节),10000张图片
  4. 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 数据集下载 与 保存为图片格式相关推荐

  1. python 读取 MNIST 数据集,并解析为图片文件

    python 读取 MNIST 数据集,并解析为图片文件 MNIST 是 Yann LeCun 收集创建的手写数字识别数据集,训练集有 60,000 张图片,测试集有 10,000 张图片.数据集链接 ...

  2. MNIST数据集下载及可视化

    MNIST数据集介绍 MNIST数据集官网:http://yann.lecun.com/exdb/mnist/ MNIST数据库是非常经典的一个数据集,就像你学编程起初写一个"Hello W ...

  3. 通过谷歌浏览器将当前页面保存为图片格式

    打开你需要保存为图片格式的页面,按F12打开控制台 在控制台按ctrl+shift+p然后出现输入框,输入full,然后回车 然后它会将当前网页转换为png图片格式,然后下载到谷歌的默认存储位置 转换 ...

  4. Python 手写数字识别 MNIST数据集下载失败

    目录 一.MNIST数据集下载失败 1 失败的解决办法(经验教训): 2 亲测有效的解决方法: 一.MNIST数据集下载失败 场景复现:想要pytorch+MINIST数据集来实现手写数字识别,首先就 ...

  5. vuejs项目前端纯js在线下载网页内容保存为自定义格式的word文件、另存为word文件

    所有前端导入导出方法集合: 前端必备技能知识:JS导出Blob流文件为Excel表格.Vue.js使用Blob的方式实现excel表格的下载(流文件下载)_勤动手多动脑少说多做厚积薄发-CSDN博客_ ...

  6. uniapp 小程序 APP 实现手写板 签名 画图 canvas 保存为图片格式

    文章目录 uniapp 小程序 APP 实现手写板 签名 画图 canvas 保存为图片格式 一.手写板 1.H5代码 2.JS代码 总结 uniapp 小程序 APP 实现手写板 签名 画图 can ...

  7. 深度学习入门-基于Python的理论入门与实现源代码加mnist数据集下载推荐

    深度学习入门-基于Python的理论入门与实现源代码加mnist数据集下载推荐 书籍封面 1-图灵网站下载 书里也说了,可以图灵网站下载https://www.ituring.com.cn/book/ ...

  8. MNIST数据集下载+idx3-ubyte解析【超详细+上手简单】

    前言 训练模型的时候经常会使用MNIST数据集来训练模型,那么如何获取到MNIST数据集呢?博主经过实践后,总结了经验,希望能帮助到屏幕前的你使用MNIST数据集. 目录 前言 1 下载MNIST数据 ...

  9. mnist数据集读取并保存为Numpy数组

    背景信息 MNIST数据集简介 MNIST数据集是从 NIST 的Special Database 3(SD-3)和Special Database 1(SD-1)构建而来.由于SD-3是由美国人口调 ...

  10. 手写数字识别MNIST数据集下载百度网盘链接快速下载

    介绍 MNIST数据集是机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28 * 28像素的灰度手写数字图片. 下载 官方链接:http://ya ...

最新文章

  1. lvs(+keepalived)、haproxy(+heartbeat)、nginx 负载均衡的比较分析
  2. Python-OpenCV 杂项(一):图像绘制
  3. file_get_contents遍历api数据
  4. 【ES8(2017)】async / await
  5. java glassfish_java - Tomcat,JBoss和Glassfish有什么区别?
  6. spring-mvc.xml与spring-mybatis.xml配置文件中命名空间问题
  7. 20190922 On Java8 第二十一章 数组
  8. RadioButton设置图片大小
  9. kippo mysql_浅析开源蜜罐识别与全网测绘
  10. Bootstrap 框架-下拉菜单
  11. step5: 编写spider爬取
  12. php属相对应年份博客,生肖年份的起点
  13. 常见的hash函数算法
  14. 编译Linux内核没有zImage,Linux 编译系统的简单介绍与内核编译安装
  15. 微信小程序毕业设计论文求职招聘|兼职管理系统+后台管理项目源代码
  16. 基于51单片机的压力监测仪(MPX4115)(Proteus仿真+程序)
  17. 阿里高级技术专家张建飞:面对复杂业务,if-else coder 如何升级?
  18. 抖音小店无货源选品技巧分享,都是最简单的选品方法,一学就会
  19. VC2015 qt 打包发布
  20. 自动控制原理 第二讲 传递函数

热门文章

  1. python入门基础语法答案_第一阶段:Python开发基础 Python基础语法入门  day03 课后作业...
  2. 学计算机编程有什么用,编程是什么 学习编程的好处
  3. 细等线体cass_CASS打开图形出现字体替换怎么解决?
  4. 「业务架构」商业模式画布
  5. 数字信号处理matlab版答案,数字信号处理(MATLAB版)
  6. Ardusub源码解析学习(二)——电机库
  7. 怎么安装mysql5.6.19_centos6.5 rpm安装mysql5.6.19操作及步骤
  8. java8以及常见编程技术Api中文版手册
  9. Mifare Classic Tool (MCT),Android平台RFID工具
  10. 流水作业c语言代码,C语言流水灯