数据集下载连接:https://download.csdn.net/download/qq_21792169/12007051

解压后格式如下:

代码如下:

import numpy as np
import struct
import matplotlib.pyplot as plt# 训练集文件
train_images_idx3_ubyte_file = './train-images.idx3-ubyte'
# 训练集标签文件
train_labels_idx1_ubyte_file = './train-labels.idx1-ubyte'# 测试集文件
test_images_idx3_ubyte_file = './t10k-images.idx3-ubyte'
# 测试集标签文件
test_labels_idx1_ubyte_file = './t10k-labels.idx1-ubyte'def decode_idx3_ubyte(idx3_ubyte_file):"""解析idx3文件的通用函数:param idx3_ubyte_file: idx3文件路径:return: 数据集"""# 读取二进制数据bin_data = open(idx3_ubyte_file, 'rb').read()# 解析文件头信息,依次为魔数、图片数量、每张图片高、每张图片宽offset = 0fmt_header = '>iiii'magic_number, num_images, num_rows, num_cols = struct.unpack_from(fmt_header, bin_data, offset)print('魔数:%d, 图片数量: %d张, 图片大小: %d*%d' % (magic_number, num_images, num_rows, num_cols))# 解析数据集image_size = num_rows * num_colsoffset += struct.calcsize(fmt_header)fmt_image = '>' + str(image_size) + 'B'images = np.empty((num_images, num_rows, num_cols))for i in range(num_images):if (i + 1) % 10000 == 0:print('已解析 %d' % (i + 1) + '张')images[i] = np.array(struct.unpack_from(fmt_image, bin_data, offset)).reshape((num_rows, num_cols))offset += struct.calcsize(fmt_image)return imagesdef decode_idx1_ubyte(idx1_ubyte_file):"""解析idx1文件的通用函数:param idx1_ubyte_file: idx1文件路径:return: 数据集"""# 读取二进制数据bin_data = open(idx1_ubyte_file, 'rb').read()# 解析文件头信息,依次为魔数和标签数offset = 0fmt_header = '>ii'magic_number, num_images = struct.unpack_from(fmt_header, bin_data, offset)print('魔数:%d, 图片数量: %d张' % (magic_number, num_images))# 解析数据集offset += struct.calcsize(fmt_header)fmt_image = '>B'labels = np.empty(num_images)for i in range(num_images):if (i + 1) % 10000 == 0:print('已解析 %d' % (i + 1) + '张')labels[i] = struct.unpack_from(fmt_image, bin_data, offset)[0]offset += struct.calcsize(fmt_image)return labelsdef load_train_images(idx_ubyte_file=train_images_idx3_ubyte_file):"""TRAINING SET IMAGE FILE (train-images-idx3-ubyte):[offset] [type]          [value]          [description]0000     32 bit integer  0x00000803(2051) magic number0004     32 bit integer  60000            number of images0008     32 bit integer  28               number of rows0012     32 bit integer  28               number of columns0016     unsigned byte   ??               pixel0017     unsigned byte   ??               pixel........xxxx     unsigned byte   ??               pixelPixels are organized row-wise. Pixel values are 0 to 255. 0 means background (white), 255 means foreground (black).:param idx_ubyte_file: idx文件路径:return: n*row*col维np.array对象,n为图片数量"""return decode_idx3_ubyte(idx_ubyte_file)def load_train_labels(idx_ubyte_file=train_labels_idx1_ubyte_file):"""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 items0008     unsigned byte   ??               label0009     unsigned byte   ??               label........xxxx     unsigned byte   ??               labelThe labels values are 0 to 9.:param idx_ubyte_file: idx文件路径:return: n*1维np.array对象,n为图片数量"""return decode_idx1_ubyte(idx_ubyte_file)def load_test_images(idx_ubyte_file=test_images_idx3_ubyte_file):"""TEST SET IMAGE FILE (t10k-images-idx3-ubyte):[offset] [type]          [value]          [description]0000     32 bit integer  0x00000803(2051) magic number0004     32 bit integer  10000            number of images0008     32 bit integer  28               number of rows0012     32 bit integer  28               number of columns0016     unsigned byte   ??               pixel0017     unsigned byte   ??               pixel........xxxx     unsigned byte   ??               pixelPixels are organized row-wise. Pixel values are 0 to 255. 0 means background (white), 255 means foreground (black).:param idx_ubyte_file: idx文件路径:return: n*row*col维np.array对象,n为图片数量"""return decode_idx3_ubyte(idx_ubyte_file)def load_test_labels(idx_ubyte_file=test_labels_idx1_ubyte_file):"""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 items0008     unsigned byte   ??               label0009     unsigned byte   ??               label........xxxx     unsigned byte   ??               labelThe labels values are 0 to 9.:param idx_ubyte_file: idx文件路径:return: n*1维np.array对象,n为图片数量"""return decode_idx1_ubyte(idx_ubyte_file)def run():train_images = load_train_images()train_labels = load_train_labels()test_images = load_test_images()# test_labels = load_test_labels()# 查看前十个数据及其标签以读取是否正确for i in range(10):print(train_labels[i])print(test_images[i].shape[0:2])plt.imshow(train_images[i], cmap='gray')plt.show()print('done')if __name__ == '__main__':run()

MNIST数据集下载与读取相关推荐

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

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

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

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

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

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

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

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

  5. 关于mnist数据集下载的相关问题

    文章目录 问题描述:在Tensorflow 2.0.1版本中下载mnist数据集 原因分析: 解决方案: 问题描述:在Tensorflow 2.0.1版本中下载mnist数据集 from tensor ...

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

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

  7. mnist 数据集 下载 训练 测试 pytorch

    1.下载 可以使用 #train_set = mnist.MNIST('./data', train=True, download=True) 但是速度慢一般无法下载,官网下载也较慢 提供官网下载的压 ...

  8. 关于TensorFlow的MNIST数据集下载脚本input_data.py的坑

    今天用github上的代码入门tensorflow但是发现似乎要下载数据集,但是这个我弄了一会才明白是怎么下的,所以把经验写在下面:(ubuntu14.04环境) 用github上的input_dat ...

  9. pytorch Fashion MNIST 数据集下载慢怎么办

    import torch # 导入pytorch from torchvision import datasets, transforms ## 导入数据集与数据预处理的方法 import matpl ...

  10. TensorFlow Mnist数据集下载问题

    安装好TensorFlow后,按教程输入如下命令时,会出现不能下载数据的问题. from tensorflow.examples.tutorials.mnist import input_data m ...

最新文章

  1. 爬一爬那些年你硬盘存过的“老师”
  2. CenterFusion: 基于Radar和Camera融合的3D检测算法
  3. 齐俊元:怎样设计体验出色的企业级应用
  4. VS2008中的“解决方案配置”和“解决方案平台”不见了(Release和Debug)的解决方法...
  5. 给你的Flex程序添加深链接和分析-其实比你想象的要简单
  6. Javascript学习------内部对象 String Date event(重要)
  7. 排除网络故障课后习题参考答案
  8. PostgreSQL 安装 用户配置
  9. python自动发邮件附件_python自动发送带附件的邮件(163邮箱,亲测可用)
  10. jdk8 mysql安装教程_Linux系统:centos7下安装Jdk8、Tomcat8.5、MySQL5.7环境
  11. 079 pandas模块
  12. 幼儿园管理系统的设计与实现
  13. 安装FileFormatConverters,出现错误“无法使用此产品的安装源。请确认安装源存在,并且您可以访问它”
  14. convertTo的用法
  15. 外螺纹对照表_螺纹符号对照表[1]
  16. Phaser3之 load
  17. FFmpeg进行音频的解码和播放
  18. 我的学习node.js心得(一)
  19. liunx下调整CPU参数获得高性能
  20. 远程视频监控:流媒体之FFmpeg+RTMP+Nginx+VLC

热门文章

  1. linkedin android,如何在android中登录linkedin?
  2. python怎么通过手机号定位_基于Python的免费手机号码归属地查询
  3. python查询手机号码归属地
  4. python程序狮_Python编程狮
  5. 数据结构(C语言版 第2版)课后习题答案全集 严蔚敏
  6. centos7完全卸载mysql_Centos7 完全卸载mysql
  7. Linux内核源码总体介绍—1
  8. 计算机指法游戏警察抓小偷,警察抓小偷打字游戏游戏
  9. 计算机毕业论文降重,湖南计算机专业毕业论文英文摘要,财务管理专业硕士毕业论文降重...
  10. ibm服务器操作系统重装步骤,ibm服务器安装 操作系统安装步骤