本文将介绍MNIST数据集的数据格式和使用方法,使用到的是tensorflow中封装的类,包含代码。

MNIST数据集来源于这里, 如果希望下载原始格式的数据集,可以从这里下载。而本文中讲解的是已经使用python代码封装好的MNIST数据集。封装的代码作为tensorflow的一部分,内部使用了numpy。所以,在使用这段封装的代码的时候,返回值将numpy的对象。因为numpy是常用和非常实用的工具包,所以,使用numpy具有很多好处。

首先导入包:

import numpy as np
from tensorflow.examples.tutorials.mnist import input_data

获取MNIST数据集主需要执行下面一行代码:

mnist = input_data.read_data_sets('dir_with_mnist_data_files', one_hot=False)

mnist数据集把数据分成了三部分,分别是train、test和validation,作用分别是训练、测试和认证。有时候test不是必须的。它们的数据集的大小可以通过下面这段代码得到:

    print("train example number: ", mnist.train.num_examples)print("train image shape: ", mnist.train.images.shape)# print(mnist.train.images[0:1])print("train label shape: ", mnist.train.labels.shape)print("test image shape: ", mnist.test.images.shape)print("test image label shape: ", mnist.test.labels.shape)print("validataion image shape: ", mnist.validation.images.shape)print("validataion label shape: ", mnist.validation.labels.shape)batch_xs, batch_ys = mnist.train.next_batch(batch_size=100)print("batch_xs shape is , batch_ys shape is ", batch_xs.shape, batch_ys.shape)print("max value in image: ", np.max(mnist.test.images))print("min value in image", np.min(mnist.test.images))print("max value in label", np.max(mnist.test.labels))print("min value in label", np.min(mnist.test.labels))one_hot_mnist = input_data.read_data_sets('dir_with_mnist_data_files', one_hot=True)print("train image shape of one_hot mnist shape: ", one_hot_mnist.train.images.shape)print("train label shape of one_hot mnist shape: ", one_hot_mnist.train.labels.shape)

上面这段代码的执行结果为:

train example number:  55000
train image shape:  (55000, 784)
train label shape:  (55000,)
test image shape:  (10000, 784)
test image label shape:  (10000,)
validataion image shape:  (5000, 784)
validataion label shape:  (5000,)
batch_xs shape is , batch_ys shape is  (100, 784) (100,)
max value in image:  1.0
min value in image 0.0
max value in label 9
min value in label 0
train image shape of one_hot mnist shape:  (55000, 784)
train label shape of one_hot mnist shape:  (55000, 10)

总结如下:
上面的代码对象比如mnist.train.num_examples是numpy对象。

有55000个train 用例,每一个用例的x是一个长度为28 x 28 = 784的数组,其中的最大值为1,最小值为0;每一个用例的y或者label是一个数,其中最大值为9, 最小值为0。

有10000个test用例。

有5000个validation用例。

如果是one hot格式,也就是上面的代码中的one_hot参数为True,那么每一个用例中的label不再是一个数,而是一个长度为10的数组,该数组中有9个0,只有一个1(注意是一个用例)。比如如果是手写字3, 那么对于one hot格式,就变成[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]。one hot编码格式在多分类模型中使用到。其他的格式不变。

结束! 谢谢

深度学习4:使用MNIST数据集(tensorflow)相关推荐

  1. Dataset:数据集集合(综合性)——机器学习、深度学习算法中常用数据集大集合(建议收藏,持续更新)

    Dataset:数据集集合(综合性)--机器学习.深度学习算法中常用数据集大集合(建议收藏,持续更新) 目录 常规数据集 各大方向分类数据集汇总 具体数据集分类 相关文章 DL:关于深度学习常用数据集 ...

  2. 作为深度学习最强框架的TensorFlow如何进行时序预测!(转)

    作为深度学习最强框架的TensorFlow如何进行时序预测! BigQuant 2 个月前 摘要: 2017年深度学习框架关注度排名tensorflow以绝对的优势占领榜首,本文通过一个小例子介绍了T ...

  3. 《深度学习案例精粹:基于TensorFlow与Keras》深度学习常用训练案例合集

    #好书推荐##好书奇遇季#<深度学习案例精粹:基于TensorFlow与Keras>,京东当当天猫都有发售.本书配套示例源码.PPT课件.思维导图.数据集.开发环境与答疑服务. <深 ...

  4. Karpathy更新深度学习开源框架排名:TensorFlow第一,PyTorch第二

    上周,Keras作者.谷歌研究科学家François Chollet晒出一张图,他使用Google Search Index,展示了过去三个月,ArXiv上提到的深度学习框架排行,新智元也做了报道: ...

  5. Lesson 12.1 深度学习建模实验中数据集生成函数的创建与使用

    Lesson 12.1 深度学习建模实验中数据集生成函数的创建与使用   为了方便后续练习的展开,我们尝试自己创建一个数据生成器,用于自主生成一些符合某些条件.具备某些特性的数据集.相比于传统的机器学 ...

  6. 手把手教你在Windows10环境下安装深度学习框架(pytorch or tensorflow)

    手把手教你在Windows10环境下安装深度学习框架(pytorch or tensorflow) 1. 安装Anaconda:(常用的python版本和各类包管理器) 1.1. 下载地址: 1.2. ...

  7. 李沐《动手学深度学习》新增PyTorch和TensorFlow实现,还有中文版

    李沐老师的<动手学深度学习>已经有Pytorch和TensorFlow的实现了,并且有了中文版. 网址:http://d2l.ai/ 简介 李沐老师的<动手学深度学习>自一年前 ...

  8. 12大深度学习开源框架(caffe,tensorflow,pytorch,mxnet等)汇总详解

    这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpeng2008/yousa ...

  9. 小样本点云深度学习库_基于点云深度学习的点云数据集制作系统及方法与流程...

    本发明涉及测控技术领域,尤其涉及一种基于点云深度学习的点云数据集制作系统及方法. 背景技术: 深度学习网络模型一般都是基于64线单帧激光数据集进行.但64线激光器和单帧的限定,造成了工程应用中点云数据 ...

  10. 首个可用于深度学习的ToF相关数据集!基于置信度的立体相机以及ToF相机深度图融合框架...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者 | cocoon 编辑 | 3D视觉开发者社区 目录 ✦ contents 1. 概述 2. 方 ...

最新文章

  1. python初学到底怎么学?大神三天快速学习python的方法留下的笔记
  2. 罗辑思维 - 当代的学习方法
  3. Python基础教程:对象及数字对象与数学运算
  4. Tango+Daydream,刀剑合璧的Android VR开发
  5. Kinect开发笔记之六Kinect Studio的应用
  6. Qt中全局变量的使用
  7. js获取本月或指定月份的最后一天
  8. SQL Server数据库快照
  9. mysql中profile的使用
  10. 计算机作文600字关于科学事业,关于科学的作文600字(精选11篇)
  11. 切向量,普通矢量,渐变
  12. sci论文发表的重复率要求低于多少
  13. MacOS-Mac开发和iOS开发的区别
  14. iPhone轻松共享wifi密码给好友
  15. Linux C popen函数返回Shell命令执行结果
  16. PDF预览完整解决方案及各种兼容(VUE版)
  17. Visual Studio各版本区别
  18. 阿里云分析型数据库MySQL版(AnalyticDB)测试初体验
  19. Java面试准备(四)——Java8特性
  20. 软件工程是不是教不怎么会的写程序的人开发软件?

热门文章

  1. 团体——L1-003 个位数统计 (c)
  2. ant vue 兼容性问题_Ant Design of Vue使用遇到的问题以及解决方法总结
  3. 倍福ads通讯软件_软件定义汽车“性感”吗?东软睿驰有自己的答案
  4. java 音频电台_Java-通过Java套接字广播语音
  5. LeetCode--046--全排列(java)
  6. new Date 兼容性问题
  7. 单一docker主机网络
  8. 【AIX 命令学习】加载与卸载文件系统!
  9. linux中设置程序开机自动启动
  10. className的高效匹配