背景信息

MNIST数据集简介

MNIST数据集是从 NIST 的Special Database 3(SD-3)和Special Database 1(SD-1)构建而来。由于SD-3是由美国人口调查局的员工进行标注,SD-1是由美国高中生进行标注,因此SD-3比SD-1更干净也更容易识别。Yann LeCun等人从SD-1和SD-3中各取一半作为MNIST的训练集(60000条数据)和测试集(10000条数据),其中训练集来自250位不同的标注员,此外还保证了训练集和测试集的标注员是不完全相同的。

本文目的

本文实现MNIST数据集和标签的读取,并转化为Numpy的数组进行输出。

前提条件

以完成MNIST数据集的下载,如下所示:

root@5e3ac72a80f4:~/.cache/paddle/dataset/mnist# ll
total 11344
drwxr-xr-x  2 root root    4096 Mar 12 03:22 ./
drwxr-xr-x 13 root root    4096 Apr  1 07:01 ../
-rw-r--r--  1 root root 1648877 Mar 12 03:22 t10k-images-idx3-ubyte.gz
-rw-r--r--  1 root root    4542 Mar 12 03:22 t10k-labels-idx1-ubyte.gz
-rw-r--r--  1 root root 9912422 Mar 12 03:22 train-images-idx3-ubyte.gz
-rw-r--r--  1 root root   28881 Mar 12 03:22 train-labels-idx1-ubyte.gz

详细代码

#导入所需包
import subprocess
import numpy
import platform
#定义变量
image_filename='/root/.cache/paddle/dataset/mnist/train-images-idx3-ubyte.gz'
label_filename='/root/.cache/paddle/dataset/mnist/train-labels-idx1-ubyte.gz'
buffer_size=100
# 定义函数读取image,并保存为数组
def get_images(image_filename, buffer_size):m = subprocess.Popen(['zcat', image_filename], stdout=subprocess.PIPE)m.stdout.read(16)  # skip some magic bytesimages=numpy.fromfile(m.stdout, 'ubyte', count=buffer_size * 28 * 28).reshape((buffer_size, 28 * 28)).astype('float32')images = images / 255.0 * 2.0 - 1.0m.terminate()return images
# 定义函数读取labels,并保存为数组
def get_labels(label_filename, buffer_size):l = subprocess.Popen(['zcat', label_filename], stdout=subprocess.PIPE)l.stdout.read(8)  # skip some magic byteslabels = numpy.fromfile(l.stdout, 'ubyte', count=buffer_size).astype("int")#print labels.shapel.terminate()return labels
# 创建Paddle中使用的def reader_create(image_filename, label_filename, buffer_size)
def mnist_reader(image_filename, label_filename, buffer_size):def reader():images=get_images(image_filename, buffer_size)labels=get_labels(label_filename, buffer_size)for i in xrange(buffer_size):yield images[i,:], int(labels[i])return reader

查看结果:

mnist数据集读取并保存为Numpy数组相关推荐

  1. 三维目标检测:(一)制作自己的ModelNet数据集(1.读取pcd文件为numpy数组)

    Python读取pcd文件为numpy数组 pcd文件的格式 读取pcd文件存储到numpy数组中 补充 pcd文件的格式 1.第二行:每行数据的内容 可能是(X Y Z R G B)或者(X Y Z ...

  2. python 读取 Raw文件 生成 Numpy 数组

    一般情况下,有python的三方库的软件,可以读RGB二进制的Raw数据,生成Numpy数据.比如说OpenCV之类的.但是,我们也可以使用python的裸代码,得到Numpy. 知识点: numpy ...

  3. 读取图片并转为numpy数组

    from PIL import Image content_img_path = './style_transfer_data/sun1.jpg' style_img_path = './style_ ...

  4. 下载MNIST数据集并使用python将数据转换成NumPy数组(源码解析)

    下载MNIST数据集并使用python将数据转换成NumPy数组 首先来分析init_mnist函数 接下来继续分析load_mnist函数 实现数据集转换的python脚本的代码 显示MNIST图像 ...

  5. Tensorflow 笔记 XIII——“百无聊赖”:深挖 mnist 数据集与 fashion-mnist 数据集的读取原理,经典数据的读取你真的懂了吗?

    文章目录 数据集简介 Mnist 出门右转 Fashion-Mnist 数据集制作需求来源 写给专业的机器学习研究者 获取数据 类别标注 读取原理 原理获取 TRAINING SET LABEL FI ...

  6. 机器学习入门(07)— MNIST 数据集手写数字的识别

    和求解机器学习问题的步骤(分成学习和推理两个阶段进行)一样,使用神经网络解决问题时,也需要首先使用训练数据(学习数据)进行权重参数的学习:进行推理时,使用刚才学习到的参数,对输入数据进行分类. 1. ...

  7. Pytorch 实现全连接神经网络/卷积神经网络训练MNIST数据集,并将训练好的模型在制作自己的手写图片数据集上测试

    使用教程 代码下载地址:点我下载 模型在训练过程中会自动显示训练进度,如果您的pytorch是CPU版本的,代码会自动选择CPU训练,如果有cuda,则会选择GPU训练. 项目目录说明: CNN文件夹 ...

  8. 使用SimpleITK读取、保存、处理nii文件

    目录 前言 nii格式 读取nii成numpy格式 将numpy格式保存成nii 什么是origin.Direction.Spacing,以及如何设置它们 示例 重采样 重采样代码 参考链接 前言 n ...

  9. 将MNIST手写数字数据集导入NumPy数组(《深度学习入门:基于Python的理论与实现》实践笔记)

    将MNIST手写数字数据集导入NumPy数组(<深度学习入门:基于Python的理论与实现>实践笔记) 一.下载MNIST数据集(使用urllib.request.urlretrieve( ...

最新文章

  1. php图片如何让浮动,页面中用css属性怎么控制图片自定义浮动?(示例)
  2. 数据绑定控件之DataList
  3. mybatis支持驼峰自动转换sql吗_mybatis-plus返回map自动转驼峰配置操作
  4. 工程实战-ES6环境配置
  5. ACL 2019 | 巧用文本语境信息:基于上下文感知的向量优化
  6. DCMTK:使用dcmsr API创建示例结构化报告
  7. WPF基础到企业应用系列7——深入剖析依赖属性(三)
  8. mysql存钱用什么类型_电脑液晶显示器面板类型有哪些,显示器用什么面板比较好?...
  9. checkbox click和change事件
  10. java cookie p3p_利用P3P实现单点登录和COOKIE的跨域读写
  11. sqlplus下无法shutdown情况下不妨试试crsctl stop crs
  12. jk-fourm.php,JK车头灯与我的新年期望(已更新完毕)
  13. Protues闪退解决办法
  14. NLPIR词性标记集
  15. MIMO-OFDM学习笔记(传播与衰落)
  16. 产品体验报告:百词斩————英语学习的领跑者
  17. 计算机内存错误 要降频,电脑出现内存自动降频的问题该怎么办?
  18. PWM/转速单闭环/转速电流双闭环电机控制Simulink仿真
  19. DFS(深度优先搜索算法)——Java实现(含例题)
  20. (原创)分布式系统应对单点故障策略选择

热门文章

  1. unity安卓打包修改启动画面_Unity自动化打包Android APK
  2. ie不加载jre_国内银行为兼容XP/IE6 竟然篡改IE安全协议把所有用户拖下水
  3. arcgis 投影坐标系转地理坐标系_空间坐标与投影系统系列(二):国内常用投影坐标系...
  4. 仿苹果涂鸦软件_有没有仿ios12备忘录便签软件?
  5. 华为MDC调试工具使用介绍
  6. 周期串plus 水题
  7. 还是畅通工程 最小生成树
  8. 成功将本地文件添加到github仓库
  9. 2018 蓝桥杯省赛 B 组模拟赛(一)--- H. 封印之门(最短路)
  10. 使用transforms.Normalize((0.5,), (0.5,))异常报错“Process finished with exit code -1073741676 (0xC0000094)”