MNIST数据集转为图片形式输出
前期工作
1、请注意运行代码存入的文件夹的名称,要与代码中的path
路径对应一致;
2、下载MNIST数据集(四个压缩包),并将四个压缩包的内容解压出来,如下图①;
3、在运行代码目录下,建立data
文件夹,data
文件夹下包含两个子文件夹data_a
、data_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数据集转为图片形式输出相关推荐
- 请求一个action,将图片的二进制字节字符串在视图页面以图片形式输出
有些时候需要将二进制图片字节在发送浏览器以图片形式显示: 下面是一些示例代码: 控制器: 1 /// <summary> 2 /// 将图片的二进制字节字符串在视图页面以图片形式输出 3 ...
- 将CRgn rgn对象以图片形式输出便于查看
为了调试方便,将CRgn rgn对象以图片形式输出,便于查看 { CRgn rgn int w = m_lpShapePoints[4].x+4; int h = m_lpShapePoints ...
- python 将MNIST数据集转为jpg图片格式
下载的数据集格式是字节存储的,有时需要转为图片格式,以下以测试集为例子,说明python转换代码. IDX数据格式 这四个文件采用了IDX的文件格式,一种平铺直叙的方式: magic number s ...
- tensorflow(七)实现mnist数据集上图片的训练和测试
本文使用tensorflow实现在mnist数据集上的图片训练和测试过程,使用了简单的两层神经网络,代码中涉及到的内容,均以备注的形式标出. 关于文中的数据集,大家如果没有下载下来,可以到我的网盘去下 ...
- MNIST数据集提取图片和标注信息
MNIST数据集 简介 MNIST数据集(http://yann.lecun.com/exdb/mnist/)是著名的手写数字分类数据集,主要由一下四部分组成: 训练集图片:train-images. ...
- MNIST数据集转为.jpg图片格式
从mnist官网下载下来的mnist手写数据集是二进制文件流格式的,不能直接查看,如果需要查看,需要将二进制文件转化为jpg格式,可以用各种编程语言实现,如MATLAB.Python.C++等,本文是 ...
- 深度学习基础实战使用MNIST数据集对图片分类
本文代码完全借鉴pytorch中文手册 '''我们找到数据集,对数据做预处理,定义我们的模型,调整超参数,测试训练,再通过训练结果对超参数进行调整或者对模型进行调整.''' import torch ...
- 将图片的二进制字节字符串在HTML页面以图片形式输出
具体实现代码如下: 1.新建一个一般处理程序: Image.ashx 1 using System; 2 using System.Collections.Generic; 3 using Syste ...
- 将MNIST数据集转换成.jpg图片
MNIST数据集简介 # MNIST 数据集合共包含70000张手写数字图片 # 其中60000张用作训练集 # 10000张用作预测集 # 数据集包含了0-9共10类手写数字图片,每张 # 图片都做 ...
最新文章
- Forms Authentication timeout and Expiration
- 编程之美2.1 求二进制中1的个数
- python爬虫赚钱的途径-如何用爬虫技术赚钱?
- iOS框架介绍之coreImage
- python中sorted的用法append_python sorted()排序详解
- 国货彩妆品牌2021年Q1社媒营销投放分析报告
- python findall_Python 正则表达式:findall
- 如何用计算机解一元三次方程,利用Excel电子表格解一元三次方程
- 计算机服装辅助设计,计算机辅助高校服装设计的论文
- java 读取换行_Java中的换行字符读取 - java
- 大数据第一季--java基础(day5)-徐培成-专题视频课程
- zabbix监控服务器raid状态,基于Zabbix的MegaRAID阵列卡状态监控
- 善领dsa2020最新车机ce版_理想汽车回应碰撞事故 硬件升级计划将推出OTA 2.0版
- 基于 FPGA 的 SATA 3.0 IP 核简介
- iOS开发之地图代理不起作用(提示vImage decode failed, falling back to CG path.)
- NLP初学-简易聊天机器人
- Java实现给PDF每页右上角添加图片水印
- mysql函数汇总之字符串函数
- 小微企业如何通过运营公众号提升业绩?
- python与anaconda安装(先安装了python后安装anaconda,基于python已存在的基础上安装anaconda)——逼死强迫症、超详解
热门文章
- PYNQ-Z2启动/网络配置
- 我的世界服务器修改圈地大小,我的世界圈地大小限制设置
- OpenStack和Docker不能,Kubernetes和Mesos也不能,ServerLess能决定云计算胜负吗?
- Python爬虫入门6:模拟浏览器访问网页的http报文体压缩传输
- jsp高校文体活动申请系统
- KVM虚拟机磁盘加密
- VBA宏实现Word论文自动排版
- 一物一码(10):二维码的安全管控
- Oracle19c安装教程及PLSQL配置常见错误解决办法
- python函数的作用降低编程复杂度_测验5: 函数和代码复用 (第5周)