MNIST数据集简介

  MNIST数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST)。训练集(training set)由来自250个不同人手写的数字构成,其中50%是高中学生,50%来自人口普查局(the Census Bureau)的工作人员。测试集(test set)也是同样比例的手写数字数据,但保证了测试集和训练集的作者集不相交。

  MNIST数据集一共有7万张图片,其中6万张是训练集,1万张是测试集。每张图片是28×2828\times 2828×28的0−90-90−9的手写数字图片组成。每个图片是黑底白字的形式,黑底用0表示,白字用0-1之间的浮点数表示,越接近1,颜色越白。

  将28×2828\times 2828×28维的图片矩阵拉直,转化为1×7841\times 7841×784维的向量不影响理解:

[0,0,0,0.345,0.728,0.310,0.402,0,0,0,⋯,0,0,0][0,0,0,0.345,0.728,0.310,0.402,0,0,0,\cdots,0,0,0][0,0,0,0.345,0.728,0.310,0.402,0,0,0,⋯,0,0,0]

  图片的标签以一维数组的one-hot编码形式给出:

[0,0,0,0,0,1,0,0,0,0][0,0,0,0,0,1,0,0,0,0][0,0,0,0,0,1,0,0,0,0]每个元素表示图片对应的数字出现的概率,显然,该向量标签表示的是数字555。

  MNIST数据集下载地址是http://yann.lecun.com/exdb/mnist/,它包含了444个部分:

  • 训练数据集:train-images-idx3-ubyte.gz (9.45 MB,包含60,000个样本)。
  • 训练数据集标签:train-labels-idx1-ubyte.gz(28.2 KB,包含60,000个标签)。
  • 测试数据集:t10k-images-idx3-ubyte.gz(1.57 MB ,包含10,000个样本)。
  • 测试数据集标签:t10k-labels-idx1-ubyte.gz(4.43 KB,包含10,000个样本的标签)。

使用TensorFlow导入数据集

  在这里,使用Jupyter NoteBook来运行有关MNIST数据集的程序实现。

代码实现

  1. 使用TensorFlow读取数据集。
    注意事项: 亲自实验的时候,使用上述代码,原本应该是需要下载,但下载不动。提前下载好,直接放到正确地址下也是可以的。
import tensorflow.examples.tutorials.mnist.input_data as input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=False)
'''
Extracting MNIST_data/train-images-idx3-ubyte.gz
Extracting MNIST_data/train-labels-idx1-ubyte.gz
Extracting MNIST_data/t10k-images-idx3-ubyte.gz
Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
'''
  1. 打印MNIST数据集中的一些信息。
print("MNIST数据集的类型是: %s'" % (type(mnist)))
print("训练集的数量是:%d" % mnist.train.num_examples)
print("验证集的数量是:%d" % mnist.validation.num_examples)
print("测试集的数量是:%d" % mnist.test.num_examples)
'''
MNIST数据集的类型是: <class 'tensorflow.contrib.learn.python.learn.datasets.base.Datasets'>'
训练集的数量是:55000
验证集的数量是:5000
测试集的数量是:10000
'''
  1. 将所有数据集,加载为数组形式,方便之后的使用。
train_img = mnist.train.images
train_label = mnist.train.labels
test_img = mnist.test.images
test_label = mnist.test.labelsprint("Type of training is %s" % (type(train_img )))
print("Type of trainlabel is %s" % (type(train_label )))
print("Type of testing is %s" % (type(test_img )))
print("Type of testing is %s" % (type(test_label )))
'''
Type of training is <class 'numpy.ndarray'>
Type of trainlabel is <class 'numpy.ndarray'>
Type of testing is <class 'numpy.ndarray'>
Type of testing is <class 'numpy.ndarray'>
'''
  1. 获取前10MNSIT数据集的图片形式,如下图所示:
import numpy as np
import matplotlib.pyplot as pltfor i in range(10):img = np.reshape(train_img [i, :], (28, 28))label = np.argmax(train_img [i, :])plt.matshow(img, cmap = plt.get_cmap('gray'))plt.show()

  可以看到,读取的数据是从MNIST数组开头开始的,但数字便签并不是从0开始,是随机的、无序的。

   to be continued…

MNIST数据集简介与使用相关推荐

  1. Mnist数据集简介

    1,基本概念 MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门样例.而TensorFlow的封装让使用MNIST数据集变得更加方便.MNIST数据集是N ...

  2. MNIST 数据集简介

    转自:https://blog.csdn.net/simple_the_best/article/details/75267863 MNIST 数据集已经是一个被"嚼烂"了的数据集 ...

  3. Dataset之MNIST:MNIST(手写数字图片识别+ubyte.gz文件)数据集简介、下载、使用方法(包括数据增强)之详细攻略

    Dataset之MNIST:MNIST(手写数字图片识别+ubyte.gz文件)数据集简介+数据增强(将已有MNIST数据集通过移动像素上下左右的方法来扩大数据集为初始数据集的5倍) 目录 MNIST ...

  4. mnist数据集读取并保存为Numpy数组

    背景信息 MNIST数据集简介 MNIST数据集是从 NIST 的Special Database 3(SD-3)和Special Database 1(SD-1)构建而来.由于SD-3是由美国人口调 ...

  5. 机器学习之sklearn使用下载MNIST数据集进行分类识别

    机器学习之sklearn使用下载MNIST数据集进行分类识别 一.MNIST数据集 1.MNIST数据集简介 2.获取MNIST数据集 二.训练一个二分类器 1.随机梯度下降(SGD)分类器 2.分类 ...

  6. 全面理解主成分分析(PCA)和MNIST数据集的Python降维实现

    注:本博文为原创博文,如需转载请注明原创链接!!!   这篇博文主要讲述主成分分析的原理并用该方法来实现MNIST数据集的降维. 一.引言   主成分分析是一种降维和主成分解释的方法.举一个比较容易理 ...

  7. caffe(ubuntu14.04)学习笔记1——运行MNIST数据集模型

    MNIST数据集简介: MNIST数据集是一个大型的手写体数据库,广泛用于机器学习领域的训练和测试,它是由纽约大学的Yann LeCun教授整理的,包括60000个训练样本和10000个测试样本,其图 ...

  8. MNIST数据集的导入与预处理

    在做KNN+LDA对MNIST数据集分类时遇到了不少坑,本篇文章主要是记录一下解决这些坑的方案,完整的代码和实验报告等作业结束提交后再进行上传. MNIST数据集 MNIST数据集简介 MNIST数据 ...

  9. MNIST数据集提取图片和标注信息

    MNIST数据集 简介 MNIST数据集(http://yann.lecun.com/exdb/mnist/)是著名的手写数字分类数据集,主要由一下四部分组成: 训练集图片:train-images. ...

最新文章

  1. 阿里巴巴为什么不建议直接使用 Async 注解?
  2. Redis实现广告缓存、并完善缓存击穿
  3. ResDepot CRC码
  4. docker 核心概念整理
  5. 图像处理和计算机视觉中的经典论文(部分)
  6. [云炬创业基础笔记]第二章创业者测试2
  7. 一篇非常有用的文章-《台湾清华彭明辉教授的研究生手册》如何发现一个研究课题?
  8. matplotlib数据可视化实战——折线图+散点图
  9. 千氪|比特币十周年大事记
  10. 简单直观理解形态学中的开运算和闭运算
  11. GNU make manual 翻译(六十六)
  12. 查看Linux配置的NTP,查看linux安装ntp服务器配置
  13. cx oracle 中文 u,cx_Oracle 中文乱码
  14. 全球20大半导体企业无1家入围,中国半导体任重道远
  15. 红包雨架构设计---1、技术架构
  16. windows 进程通信(使用DDE)
  17. 计算机找不到 bitlocker,win7找不到bitlocker怎么解决?-在win7中查找bitlocker驱动器加密的方法 - 河东软件园...
  18. Qt Creator 的下载与安装
  19. 袋鼠云的mysql_袋鼠云数据中台专栏2.0 | 数据中台之数据集成
  20. 直播间人气互动软件教程

热门文章

  1. 【B-树、B+树、B* 树】多叉平衡搜索树,解决“IO次数”与“树高”问题~
  2. SCL语言如何进行运算和表达式计算?
  3. UE官方教程笔记01-实时渲染基础上
  4. c语言设置一个8位缓存区程序,单片机 并口 控制爱普生打印机开发流程记录
  5. 数据集少?那就来数据增强吧?
  6. python语言的开题报告怎么写_论文开题报告怎么写?
  7. 新浪博客插入代码(块)及代码高亮…
  8. matlab projinv,有没有大神救救孩子?
  9. 智慧交通全生命周期管理,打造绿色城市可持续发展
  10. 蚂蚁集团2022-09-15笔试