前言

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

目录

前言

1 下载MNIST数据集文件

2 解析idx3-ubyte文件

2.1 解析训练集

2.2解析测试集

3.运行py文件


1 下载MNIST数据集文件

由于MNIST数据集是在外网发布,下载比较慢,博主把MNIST放在了百度网盘中

链接:https://pan.baidu.com/s/1V-4FOePbTyBG7qZ7ge_TqQ?pwd=dw2i 
提取码:dw2i

下载到本地后,把gz后缀压缩包进行解压缩

其中包含4个文件,详细介绍如下表所示:

图表来源转自:MNIST数据集_保持理智802的博客-CSDN博客_mnist数据集

2 解析idx3-ubyte文件

接下来我们要把idx3-ubyte文件转换成图片形式

分别转换训练集和测试集,博主使用的是pycharm

2.1 解析训练集

train-images.idx3-ubyte和train-labels.idx1-ubyte分别是训练集的图片和标签,其中数据/标签文件位置需要进行修改成你本地训练集保存的位置。

import numpy as np
import structfrom PIL import Image
import osdata_file = r'D:\postgraduate\DUT\tpds\malicious_node\MNIST_data\train-images.idx3-ubyte'
# It's 47040016B, but we should set to 47040000B
data_file_size = 47040016
data_file_size = str(data_file_size - 16) + 'B'data_buf = open(data_file, 'rb').read()magic, numImages, numRows, numColumns = struct.unpack_from('>IIII', data_buf, 0)
datas = struct.unpack_from('>' + data_file_size, data_buf, struct.calcsize('>IIII'))
datas = np.array(datas).astype(np.uint8).reshape(numImages, 1, numRows, numColumns)label_file = r'D:\postgraduate\DUT\tpds\malicious_node\MNIST_data\train-labels.idx1-ubyte'# It's 60008B, but we should set to 60000B
label_file_size = 60008
label_file_size = str(label_file_size - 8) + 'B'label_buf = open(label_file, 'rb').read()magic, numLabels = struct.unpack_from('>II', label_buf, 0)
labels = struct.unpack_from('>' + label_file_size, label_buf, struct.calcsize('>II'))
labels = np.array(labels).astype(np.int64)datas_root = 'mnist_train'
if not os.path.exists(datas_root):os.mkdir(datas_root)for i in range(10):file_name = datas_root + os.sep + str(i)if not os.path.exists(file_name):os.mkdir(file_name)for ii in range(numLabels):img = Image.fromarray(datas[ii, 0, 0:28, 0:28])label = labels[ii]file_name = datas_root + os.sep + str(label) + os.sep + \'mnist_train_' + str(ii) + '.png'img.save(file_name)

2.2解析测试集

t10k-labels.idx3-ubyte和t10k-labels.idx1-ubyte分别是测试集的图片和标签,其中数据/标签文件位置需要进行修改成你本地测试集保存的位置。

import numpy as np
import structfrom PIL import Image
import osdata_file = r'D:\postgraduate\DUT\tpds\malicious_node\MNIST_data\t10k-images.idx3-ubyte'
# It's 7840016B, but we should set to 7840000B
data_file_size = 7840016
data_file_size = str(data_file_size - 16) + 'B'data_buf = open(data_file, 'rb').read()magic, numImages, numRows, numColumns = struct.unpack_from('>IIII', data_buf, 0)
datas = struct.unpack_from('>' + data_file_size, data_buf, struct.calcsize('>IIII'))
datas = np.array(datas).astype(np.uint8).reshape(numImages, 1, numRows, numColumns)label_file = r'D:\postgraduate\DUT\tpds\malicious_node\MNIST_data\t10k-labels.idx1-ubyte'# It's 10008B, but we should set to 10000B
label_file_size = 10008
label_file_size = str(label_file_size - 8) + 'B'label_buf = open(label_file, 'rb').read()magic, numLabels = struct.unpack_from('>II', label_buf, 0)
labels = struct.unpack_from('>' + label_file_size, label_buf, struct.calcsize('>II'))
labels = np.array(labels).astype(np.int64)datas_root = 'mnist_test'
if not os.path.exists(datas_root):os.mkdir(datas_root)for i in range(10):file_name = datas_root + os.sep + str(i)if not os.path.exists(file_name):os.mkdir(file_name)for ii in range(numLabels):img = Image.fromarray(datas[ii, 0, 0:28, 0:28])label = labels[ii]file_name = datas_root + os.sep + str(label) + os.sep + \'mnist_test_' + str(ii) + '.png'img.save(file_name)

3.运行py文件

运行上述两个py文件后,会在项目的根目录下分别生成两个文件夹:

其中,mnist_train有6w个图片,minst_test有1w个图片。

大功告成,接下来就可以开始训练模型啦!!!

MNIST数据集下载+idx3-ubyte解析【超详细+上手简单】相关推荐

  1. Dataset之MNIST:自定义函数mnist.load_mnist根据网址下载mnist数据集(四个ubyte.gz格式数据集文件)

    Dataset之MNIST:自定义函数mnist.load_mnist根据网址下载mnist数据集(四个ubyte.gz格式数据集文件) 目录 下载结果 运行代码 下载结果 运行代码 mnist.py ...

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

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

  3. 2022年全国职业院校技能大赛中职组网络安全竞赛——隐写术应用解析(超详细)

    2022年全国职业院校技能大赛中职组网络安全竞赛--隐写术应用解析(超详细) B-8任务八:隐写术应用 *任务说明:仅能获取Server8的IP地址 环境需求私信博主 1.找出文件夹1中的文件,将文件 ...

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

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

  5. 下载安装power BI超详细教程

    下载安装power BI超详细教程 Power-BI是什么? Power-BI目前分为两个产品体系: (1)Power-BI标准解决方案 For金蝶(EAS.K3.KIS专业版)/ 用友(NC.U9. ...

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

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

  7. 区间DP解析超详细版!!街边老奶奶也喜欢看的好博客

    区间DP解析超详细版!! 文章目录 区间DP解析超详细版!! 1. 概念入门 2. 线性石子归并 3. 环形石子归并 4. 奇怪的题题目目 5. 区间DP的优化 附录 在上章 背包 (<-点击传 ...

  8. 一、css清除浮动方法学习笔记总结(超详细,简单易懂)

    ** css清除浮动方法学习笔记总结(超详细,简单易懂) ** 问题: 上图中,由于container(父级元素)未设置高度,其内部子元素设置了float浮动,导致与container同级(也就是co ...

  9. Fate集群 | 基于MNIST数据集的模型训练+模型预测 详细过程

    文章目录 一.获取数据集并简单处理 1.分割数据集 2.拷贝数据集 二.模型训练 1.上传数据 1)host方 2)guest方 2.构建模型 3.修改配置文件 1)DSL简介 2)DSL配置文件 3 ...

最新文章

  1. mysql 遍历_MySQL 实现树的遍历详解及简单实现示例
  2. yum 卸载php及依赖包,yum使用指南-软件卸载、安装、更新、获取软件包
  3. c语言什么叫为代码写注释算法,急!-伪代码不知哪位高手能够告诉我,什么是伪代码?伪代码编 爱问知识人...
  4. 2017-11-14【Python】爬虫练习
  5. SLAM技术的应用及发展现状
  6. Spring 学习 3- AOP
  7. 基于Raspbian(树莓派)搭建web安全练习环境(一)
  8. python日期选择框_Python的Django框架中设置日期和字段可选的方法
  9. 手把手教你写个ORM(一)
  10. 计算机网络技术毕业生实习报告_20XX计算机网络技术毕业生实习报告1000字
  11. STM32f4应用层学习之路(零基础学习STM单片机要注意的是什么? 如何从一个小白入门,你需要掌握哪些知识? 有哪些适合新手的单片机项目?)
  12. Python——弹幕词频统计及其文本分析(绘制词云)(含源代码)
  13. AHB-SRAM简单设计之架构图解
  14. Exception 异常
  15. (三)mmclassification图像分类——模型训练
  16. web服务之Nginx中的location匹配与rewrite重写跳转
  17. Tomcat优化设置:IDEA实现不用重启Tomcat就能自动更新资源
  18. 多普达(dopod)原装配件在线订购中心-搜索结果 P900 2008-08-20
  19. 掌纹识别技术的未来发展是怎样的?
  20. 数据标准化的常见方法(Min-Max标准化、Z-Score标准化等)

热门文章

  1. 青铜到王者,快速提升你 MySQL 数据库的段位!
  2. 【iframe结合pdf.js实现pdf的预览/下载及打印功能】
  3. 关于 SM4 加秘密解密的工具类 (转载)
  4. 干货:史上最实用逃顶绝招十二式!
  5. 【word2vec的那些问题】
  6. 林语堂:我生之初尚无为
  7. Python脚本翻译英文到汉语
  8. 拨开云雾synchronized使用五种方式介绍
  9. 海量存储检索原理系列文章
  10. OpenMV 检测色块