MNIST是常用的手写字符数据集
可以在杨立昆的网站下载此数据集:http://yann.lecun.com/exdb/mnist/
该数据集的存储方式比较特殊,是用二进制格式存储的,以下是网站对数据集格式的说明

一共有四个文件,各自是训练集和测试集的图片数据和标签数据


可以看出,在数据集中,第一列为字节索引,第二列为对应字的类型,第三列为值,第四列为说明

在标签数据中,前4个字节用于存储magic number,是对数据类型的说明

第5-8个字节是用于存储样本数的,第9个字节开始才是数据部分,所以我们要从第9个字节开始读该文件

对于图像数据,前8个字节同上,不过其9-16个字节是用来存储图像矩阵的行列数的,所以我们要从第17个字符开始读起

Numpy里面有个函数frombuffer是用来转换字节数据的,以下是Numpy文档的说明


frombuffer函数有4个参数,第一个参数buffer是目标字节流数据,第二个参数dtype是转换后要返回的数据类型,第三个参数count是要读取的字节数,默认-1读取全部,第四个参数offset是偏移量,表示要从第几个字节开始读起,下面是转换的代码

import numpy as np
import scipy.io as siolabel_t10k_path = 't10k-labels.idx1-ubyte'
label_train_path = 'train-labels.idx1-ubyte'
img_t10k_path = 't10k-images.idx3-ubyte'
img_train_path = 'train-images.idx3-ubyte'with open(label_t10k_path, 'rb') as label_obj:label_t10k = np.frombuffer(label_obj.read(), dtype=np.uint8, offset=8)m_t10k = len(label_t10k)label_t10k = np.asarray(label_t10k).reshape(m_t10k, 1)with open(label_train_path, 'rb') as label_obj:label_train = np.frombuffer(label_obj.read(), dtype=np.uint8, offset=8)m_train = len(label_train)label_train = np.asarray(label_train).reshape(m_train, 1)with open(img_t10k_path, 'rb') as img_obj:img_t10k = np.frombuffer(img_obj.read(), dtype=np.uint8, offset=16)img_t10k = np.asarray(img_t10k).reshape(m_t10k, 784)with open(img_train_path, 'rb') as img_obj:img_train = np.frombuffer(img_obj.read(), dtype=np.uint8, offset=16)img_train = np.asarray(img_train).reshape(m_train, 784)sio.savemat('MNIST.mat', {'label_t10k':label_t10k, 'label_train':label_train, 'img_t10k':img_t10k, 'img_train':img_train})

最后将所有数据打包为mat文件方便读取

下面是已经整理完的数据集百度云链接:
链接:https://pan.baidu.com/s/18Vpk_bSriFRU–eEdBXygA
提取码:efg0

用Numpy读取MNIST数据集(附已经读取完成的mat文件)相关推荐

  1. 读取mnist数据集方法大全(train-images-idx3-ubyte.gz,train-labels.idx1-ubyte等)(python读取gzip文件)

    文章目录 gzip包 keras读取mnist数据集 本地读取mnist数据集 下载数据集 解压读取 方法一 方法二 gzip包读取 读取bytes数据 注:import导入的包如果未安装使用pip安 ...

  2. python 读取 MNIST 数据集,并解析为图片文件

    python 读取 MNIST 数据集,并解析为图片文件 MNIST 是 Yann LeCun 收集创建的手写数字识别数据集,训练集有 60,000 张图片,测试集有 10,000 张图片.数据集链接 ...

  3. TensorFlow读取MNIST数据集错误的问题

    TensorFlow读取mnist数据集错误的问题 运行程序出现"URLError"错误的问题 可能是服务器或路径的原因,可以自行下载数据集后,将数据集放到代码所在的文件夹下,并将 ...

  4. Python读取MNIST数据集

    MNIST数据集下载地址:http://yann.lecun.com/exdb/mnist/ 读取MINST数据集第一张图像并显示 # coding=utf-8 import numpy as np ...

  5. 十分钟搞懂Pytorch如何读取MNIST数据集

    前言 本文用于记录使用pytorch读取minist数据集的过程,以及一些思考和疑惑吧- 正文 在阅读教程书籍<深度学习入门之Pytorch>时,文中是如此加载MNIST手写数字训练集的: ...

  6. MNIST手写数字数据集格式,如何读取MNIST数据集?

    数据集下载地址:http://yann.lecun.com/exdb/mnist/ TRAINING SET LABEL FILE (train-labels-idx1-ubyte):[offset] ...

  7. 利用numpy读取mnist数据集

    读取并分析如下四个文件 'train-images-idx3-ubyte' 'train-labels-idx1-ubyte' 't10k-images-idx3-ubyte' 't10k-label ...

  8. python调用数据集mnist_Python读取MNIST数据集

    importnumpy as npimportmatplotlib.pyplot as plt'''试验transpose() def back (a,b): return a,b if __name ...

  9. 在MATLAB中读取同一路径下多个txt或mat文件

    1.matlab中给我们提供了dir这个函数,十分方便.这里是读取所有txt文件,所以是dir('父目录路径\*.txt'),读取其它格式文件一样,如读取该路径下的所有png图像文件,则为dir('父 ...

最新文章

  1. 从 volatile 说到 i++ 的线程安全问题
  2. 服务器存储系统技术方案,服务器存储技术方案.pdf
  3. qt下QString转换为const char*字符串
  4. iOS 判断设备型号
  5. 【Elasticsearch】搜索引擎从0到1 有赞 视频笔记
  6. 余额宝存5万2千,为什么每天只有3.6元?
  7. 四叶草clover配置工具:Clover Configurator for Mac
  8. 转载防火墙和防毒墙的区别
  9. 【速达软件】【速达5000】5系3.97批量删除采购开单从表重复项并合计到主表
  10. sql-server(模式创建)
  11. 多日之苦终得救:“威金”专杀工具发布(转)
  12. 如何下载微信公众号的音频文件
  13. Keil升级到AC6后,到底有哪些变化?
  14. s1200 博图高速脉冲计数值没有变化_什么原因会导致 PLC1200 高数计数器无法读取编码器发出的脉冲??-工业支持中心-西门子中国...
  15. audio_policy.conf文件:AUDIO_DEVICE_IN_REMOTE_SUBMIX含义
  16. LTE信令流程——附着
  17. 【Linux上安装Scala】
  18. CSS,何谓CSS,如何使用CSS文件
  19. 新网络时代学习方式的大变革
  20. Kaggle比赛----入门指导

热门文章

  1. 怎么测试t470p性能软件,【ThinkPadT470p(20J6002YCD)评测】高性能商务本的新选择 ThinkPad T470p评测-中关村在线...
  2. CIO要顶住词汇爆炸的冲击(转)
  3. 灰色关联分析法详解及python实践
  4. Sublime Text 超美丽主题配色
  5. 计算机二级上传不了照片,2017全国计算机二级考试报名须知:上传电子照片
  6. VLAN的作用及用法详解_01
  7. dhcp服务器增加vlan,简谈多VLAN DHCP服务设置
  8. 四轮独立驱动电动汽车转矩分配控制 CarSim与Simulink联合 三自由度车辆模型(纵向、横向、横摆)
  9. G.711 G.722 codec 搞定
  10. 自动化PXE系统安装