MNIST数据集下载与保存为图片格式

深度学习


文章目录

  • 深度学习
  • 下载数据集


下载数据集

https://github.com/geektutu/tensorflow-tutorial-samples/tree/master/mnist/data_set
t10k-images-idx3-ubyte.gz
t10k-labels-idx1-ubyte.gz
train-images-idx3-ubyte.gz
train-labels-idx1-ubyte.gz
解压后,使用以下脚本导出图片

import struct
import numpy as np
from PIL import Imageclass MnistDataParser:# 加载图像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,labelsdef 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 =  MnistDataParser()trainImageFile = './t10k-images.idx3-ubyte'_, _, _, images = mnist.load_image(trainImageFile)trainLabelFile = './t10k-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()

导出的png格式图片保存在

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/12861.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle In子句

Oracle IN 运算符可以用来确定值是否与列表或子查询中的任何值相匹配 Oracle IN语法: 确定表达式是否与值列表匹配的 Oracle IN 运算符的语法如下所示: expression [NOT] IN (v1,v2,...)并且表达式的语法与子查询匹配: expression [NOT] I…

华为OD机试 - 查找舆情热词(Python/JS/C/C++ 2024 C卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

从容应对蓝屏:必知原因与对策

电脑蓝屏,即“蓝屏死机”或“蓝屏错误”,是计算机用户在日常使用中可能遇到的一种较为严重的系统错误状态。当屏幕突然变成蓝色,并显示错误代码和信息时,这通常意味着系统遇到了无法处理的问题,了解电脑蓝屏的原因及解…

每日小练:Day1

1.牛牛冲钻五 题目链接:A-牛牛冲钻五_牛客小白月赛38 题目描述: 代码如下: import java.util.*;public class Main{public static void main(String[] args){Scanner scannernew Scanner(System.in);int tscanner.nextInt();while(t--!0){…

springboot汽车租赁智慧管理-计算机设计毕业源码96317

目 录 第 1 章 引 言 1.1 选题背景 1.2 研究现状 1.3 论文结构安排 第 2 章 系统的需求分析 2.1 系统可行性分析 2.1.1 技术方面可行性分析 2.1.2 经济方面可行性分析 2.1.3 法律方面可行性分析 2.1.4 操作方面可行性分析 2.2 系统功能需求分析 2.3 系统性需求分析…

从社交媒体到元宇宙:Facebook未来发展新方向

Facebook,作为全球最大的社交媒体平台之一,已经从最初的简单互动工具发展成为一个跨越多个领域的科技巨头。无论是连接人与人之间的社交纽带,还是利用大数据、人工智能等技术为用户提供个性化的体验,Facebook一直引领着社交网络的…

用Python比较对象,你还在用==?

包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】! 1.基础比较: 和 is 在Python中,对象间的比较是程序设计中的基础且重要的一环,它直接关系到数据处理的逻辑和效率。本章将深入探讨两种基本的比较操…

MySQL 中的集群部署方案

文章目录 MySQL 中的集群部署方案MySQL ReplicationMySQL Group ReplicationInnoDB ClusterInnoDB ClusterSetInnoDB ReplicaSetMMMMHAGalera ClusterMySQL ClusterMySQL Fabric 总结参考 MySQL 中的集群部署方案 MySQL Replication MySQL Replication 是官方提供的主从同步方…

Vision Pro空间叙事创作工具:开启多媒体融合新纪元

在数字内容创作领域迎来了一位新玩家——专为Apple Vision Pro设计的空间叙事创作工具。这款工具不仅是一个沉浸式内容分享平台,更是面向空间计算时代的内容创作解决方案,它旨在通过全新的多媒体融合方式,打破传统内容创作的界限。 产品优势…

屏幕水印是什么,怎么设置丨超级简单的防盗水印教程来了,包教包会!

小李:现在科技这么发达,随便一截图或者拍照,信息就满天飞了 小张:给你的电脑屏幕安排一件“隐形战衣”呗 小李:哦?新词儿?些许陌生 小张:简而言之,言而简之&#xff0…

css:没错又是我

背景 给元素添加背景样式 还可以设置背景颜色、背景图片(教练我要学这个)、背景平铺、背景图片位置、背景图像固定 背景颜色 这个我们用过,就是: a {background-color: hotpink; } 一般默认值是transparent,也就…

adb 如何通过wifi连接手机

1. 电脑通过USB线连接手机 1.1手机开启开发者模式 以小米手机为例:连续点击OS版本系统(设置–>我的设备–>全部参数) 1.2在开发者模式下,启动允许USB安装与USB调试 操作步骤:设置>更多设置>开发者选项&g…

自己开发得期货资管模拟软件演示1.0.15版仅供学习

期货资管模拟软件演示1.0.15版仅供学习——C技术栈知识分享 本文将以期货资管模拟软件演示1.0.15版为例,分享其基于C技术栈的框架知识。 一、C技术栈在期货交易软件开发中的应用 C作为一种高性能的编程语言,以其强大的内存管理能力和高效的执行速度&a…

浅谈单片机的gcc优化级别__以双音频信号发生器为例

IDE: CLion HOST: Windows 11 MinGW:x86_64-14.2.0-release-posix-seh-ucrt-rt_v12-rev0 GCC: arm-gnu-toolchain-13.3.rel1-mingw-w64-i686-arm-none-eabi 一、简介 gcc有多种优化级别,一般不选择的情况下&#x…

C++之继承多态

C之继承&多态 继承继承之形继承的作用域继承的构造与析构多继承菱形继承 多态多态之形final和override(C11)纯虚函数&抽象类多态的原理打印虚表(在vs2022中)多继承下的虚表菱形虚继承中埋的坑静态多态与动态多态我对虚函数和普通成员函数调用区别…

机器学习-36-对ML的思考之机器学习研究的初衷及科学研究的期望

文章目录 1 机器学习最初的样子1.1 知识工程诞生(专家系统)1.2 知识工程高潮期1.3 专家系统的瓶颈(知识获取)1.4 机器学习研究的初衷2 科学研究对机器学习的期望2.1 面向科学研究的机器学习轮廓2.2 机器学习及其应用研讨会2.3 智能信息处理系列研讨会2.4 机器学习对科学研究的重…

arm 汇编技巧

汇编标号:f表示forward, b表示backward: Here is an example: 1: branch 1f 2: branch 1b 1: branch 2f 2: branch 1b Which is the equivalent of: label_1: branch label_3 label_2: branch label_1 label_3: branch label_4 label_4: bra…

特色3D打印stm32迷你8轴双核心主板

我自己设计的3D打印机主板 1. 这是一块迷你的8轴主板, 主板尺寸为100mm*75mm, 使用一个8cm静音风扇散热足够了2. 这是一个带有保护的板子, 驱动上的gpio具有过压保护功能, 能够直接抗住24V的冲击, 意味着一个驱动炸了, 板子不烧, 并且其他的驱动也没事, 主板支持自动关机3. 8…

golang分布式缓存项目 Day2 单机并发缓存

注:该项目原作者:https://geektutu.com/post/geecache-day1.html。本文旨在记录本人做该项目时的一些疑惑解答以及部分的测试样例以便于本人复习。 支持并发读写 接下来我们使用 sync.Mutex 封装 LRU 的几个方法,使之支持并发的读写。在这之…

2024 年将 Swagger 导入 Postman 图文教程

2024 年将 Swagger 导入 Postman 图文教程