前期工作

1、请注意运行代码存入的文件夹的名称,要与代码中的path路径对应一致;
2、下载MNIST数据集(四个压缩包),并将四个压缩包的内容解压出来,如下图①;
3、在运行代码目录下,建立data文件夹,data文件夹下包含两个子文件夹data_adata_c,最后在data_c文件夹下建立以0~9为名的十个文件夹,如下图②③;

-----------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------

说明:

1、这里提供两种路径选择,第一个是将所有的图片不区分索引,全部存入data_a文件夹内,第二个是按照图片索引的不同,存入data_c不同文件夹下;
2、可以通过range()函数,指定打印出图片的张数;
3、注意path对应的路径是否一致

# 将打印出的MNIST数据集中所有的图片存入一个data文件夹下
for i in range(0, 10):path = "../CNN+Kreas框架+MNIST/data/data_a/"name = str(i) + ".png"mnist_save_img(x_train[i], path, name)
"""
# 按图片标签的不同,打印MNIST数据集的图片存入不同文件夹下
for i in range(0, 50):path = "../CNN+Kreas框架+MNIST/data/data_c/" + str(y_train[i]) +"/"name = str(i)+".png"mnist_save_img(x_train[i], path, name)
"""

-----------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------

源码奉上:

# -*- coding: utf-8 -*-
# -*- author:zzZ_CMing  CSDN address:https://blog.csdn.net/zzZ_CMing
# -*- 2018/07/09; 15:18
# -*- python3.5
"""
将MNIST数据集由二进制文件转为图片形式,保存于指定文件夹下
"""
import os
import struct
import numpy as np
import matplotlib.pyplot as plt# 读MNIST数据集的图片数据
def mnist_load_img(img_path):with open(img_path, "rb") as fp:# >是以大端模式读取,i是整型模式,读取前四位的标志位,# unpack()函数:是将4个字节联合后再解析成一个数,(读取后指针自动后移)msb = struct.unpack('>i', fp.read(4))[0]# 标志位为2051,后存图像数据;标志位为2049,后存图像标签if msb == 2051:# 读取样本个数60000,存入cntcnt = struct.unpack('>i', fp.read(4))[0]# rows:行数28;cols:列数28rows = struct.unpack('>i', fp.read(4))[0]cols = struct.unpack('>i', fp.read(4))[0]imgs = np.empty((cnt, rows, cols), dtype="int")for i in range(0, cnt):for j in range(0, rows):for k in range(0, cols):# 16进制转10进制pxl = int(hex(fp.read(1)[0]), 16)imgs[i][j][k] = pxlreturn imgselse:return np.empty(1)# 读MNIST数据集的图片标签
def mnist_load_label(label_path):with open(label_path, "rb") as fp:msb = struct.unpack('>i', fp.read(4))[0];if msb == 2049:cnt = struct.unpack('>i', fp.read(4))[0];labels = np.empty(cnt, dtype="int");for i in range(0, cnt):label = int(hex(fp.read(1)[0]), 16);labels[i] = label;return labels;else:return np.empty(1);# 分割训练、测试集的图片数据与图片标签
def mnist_load_data(train_img_path, train_label_path, test_img_path, test_label_path):x_train = mnist_load_img(train_img_path);y_train = mnist_load_label(train_label_path);x_test = mnist_load_img(test_img_path);y_test = mnist_load_label(test_label_path);return (x_train, y_train), (x_test, y_test);# 输出打印图片
def mnist_plot_img(img):(rows, cols) = img.shape;plt.figure();plt.gray();plt.imshow(img);plt.show();# 按指定位置保存图片
def mnist_save_img(img, path, name):if not os.path.exists(path):os.mkdir(path)(rows, cols) = img.shapefig = plt.figure()plt.gray()plt.imshow(img)# 在既定路径里保存图片fig.savefig(path + name)# [start]
x_train = mnist_load_img("train-images.idx3-ubyte")
y_train = mnist_load_label("train-labels.idx1-ubyte")# 将打印出的MNIST数据集中所有的图片存入一个data文件夹下
for i in range(0, 10):path = "../CNN+Kreas框架+MNIST/data/data_a/"name = str(i) + ".png"mnist_save_img(x_train[i], path, name)
"""
# 按图片标签的不同,打印MNIST数据集的图片存入不同文件夹下
for i in range(0, 50):path = "../CNN+Kreas框架+MNIST/data/data_c/" + str(y_train[i]) +"/"name = str(i)+".png"mnist_save_img(x_train[i], path, name)
"""#mnist_plot_img(x_train[0, :, :])
"""
x_test = mnist_load_img("t10k-images.idx3-ubyte")
y_test = mnist_load_label("t10k-labels.idx1-ubyte")
"""

效果展示:

MNIST数据集转为图片形式输出相关推荐

  1. 请求一个action,将图片的二进制字节字符串在视图页面以图片形式输出

    有些时候需要将二进制图片字节在发送浏览器以图片形式显示: 下面是一些示例代码: 控制器: 1 /// <summary> 2 /// 将图片的二进制字节字符串在视图页面以图片形式输出 3 ...

  2. 将CRgn rgn对象以图片形式输出便于查看

    为了调试方便,将CRgn rgn对象以图片形式输出,便于查看 {  CRgn rgn  int w = m_lpShapePoints[4].x+4;  int h = m_lpShapePoints ...

  3. python 将MNIST数据集转为jpg图片格式

    下载的数据集格式是字节存储的,有时需要转为图片格式,以下以测试集为例子,说明python转换代码. IDX数据格式 这四个文件采用了IDX的文件格式,一种平铺直叙的方式: magic number s ...

  4. tensorflow(七)实现mnist数据集上图片的训练和测试

    本文使用tensorflow实现在mnist数据集上的图片训练和测试过程,使用了简单的两层神经网络,代码中涉及到的内容,均以备注的形式标出. 关于文中的数据集,大家如果没有下载下来,可以到我的网盘去下 ...

  5. MNIST数据集提取图片和标注信息

    MNIST数据集 简介 MNIST数据集(http://yann.lecun.com/exdb/mnist/)是著名的手写数字分类数据集,主要由一下四部分组成: 训练集图片:train-images. ...

  6. MNIST数据集转为.jpg图片格式

    从mnist官网下载下来的mnist手写数据集是二进制文件流格式的,不能直接查看,如果需要查看,需要将二进制文件转化为jpg格式,可以用各种编程语言实现,如MATLAB.Python.C++等,本文是 ...

  7. 深度学习基础实战使用MNIST数据集对图片分类

    本文代码完全借鉴pytorch中文手册 '''我们找到数据集,对数据做预处理,定义我们的模型,调整超参数,测试训练,再通过训练结果对超参数进行调整或者对模型进行调整.''' import torch ...

  8. 将图片的二进制字节字符串在HTML页面以图片形式输出

    具体实现代码如下: 1.新建一个一般处理程序: Image.ashx 1 using System; 2 using System.Collections.Generic; 3 using Syste ...

  9. 将MNIST数据集转换成.jpg图片

    MNIST数据集简介 # MNIST 数据集合共包含70000张手写数字图片 # 其中60000张用作训练集 # 10000张用作预测集 # 数据集包含了0-9共10类手写数字图片,每张 # 图片都做 ...

最新文章

  1. Forms Authentication timeout and Expiration
  2. 编程之美2.1 求二进制中1的个数
  3. python爬虫赚钱的途径-如何用爬虫技术赚钱?
  4. iOS框架介绍之coreImage
  5. python中sorted的用法append_python sorted()排序详解
  6. 国货彩妆品牌2021年Q1社媒营销投放分析报告
  7. python findall_Python 正则表达式:findall
  8. 如何用计算机解一元三次方程,利用Excel电子表格解一元三次方程
  9. 计算机服装辅助设计,计算机辅助高校服装设计的论文
  10. java 读取换行_Java中的换行字符读取 - java
  11. 大数据第一季--java基础(day5)-徐培成-专题视频课程
  12. zabbix监控服务器raid状态,基于Zabbix的MegaRAID阵列卡状态监控
  13. 善领dsa2020最新车机ce版_理想汽车回应碰撞事故 硬件升级计划将推出OTA 2.0版
  14. 基于 FPGA 的 SATA 3.0 IP 核简介
  15. iOS开发之地图代理不起作用(提示vImage decode failed, falling back to CG path.)
  16. NLP初学-简易聊天机器人
  17. Java实现给PDF每页右上角添加图片水印
  18. mysql函数汇总之字符串函数
  19. 小微企业如何通过运营公众号提升业绩?
  20. python与anaconda安装(先安装了python后安装anaconda,基于python已存在的基础上安装anaconda)——逼死强迫症、超详解

热门文章

  1. PYNQ-Z2启动/网络配置
  2. 我的世界服务器修改圈地大小,我的世界圈地大小限制设置
  3. OpenStack和Docker不能,Kubernetes和Mesos也不能,ServerLess能决定云计算胜负吗?
  4. Python爬虫入门6:模拟浏览器访问网页的http报文体压缩传输
  5. jsp高校文体活动申请系统
  6. KVM虚拟机磁盘加密
  7. VBA宏实现Word论文自动排版
  8. 一物一码(10):二维码的安全管控
  9. Oracle19c安装教程及PLSQL配置常见错误解决办法
  10. python函数的作用降低编程复杂度_测验5: 函数和代码复用 (第5周)