使用Tensorflow操作MNIST数据
MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门样例。而TensorFlow的封装让使用MNIST数据集变得更加方便。MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练数据,10000张图片作为测试数据。在MNIST数据集中的每一张图片都代表了0~9中的一个数字。图片的大小都为28*28,且数字都会出现在图片的正中间,如下图所示:
在上图中右侧显示了一张数字1的图片,而右侧显示了这个图片所对应的像素矩阵,MNIST数据集提供了4个下载文件,具体参考①,在tensorflow中可将这四个文件直接下载放于一个目录中并加载,如下代码input_data.read_data_sets所示,如果指定目录中没有数据,那么tensorflow会自动去网络上进行下载。下面代码介绍了如何使用tensorflow操作MNIST数据集。
from tensorflow.examples.tutorials.mnist import input_data import tensorflow as tfmnist = input_data.read_data_sets('/home/workspace/python/tf/data/mnist',one_hot=True) # 打印“Training data size: 55000” print "Training data size: ",mnist.train.num_examples # 打印“Validating data size: 5000” print "Validating data size: ",mnist.validation.num_examples # 打印“Testing data size: 10000” print "Testing data size: ",mnist.test.num_examples # 打印“Example training data: [0. 0. 0. ... 0.380 0.376 ... 0.]” print "Example training data: ",mnist.train.images[0] # 打印“Example training data label: [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]” print "Example training data label: ",mnist.train.labels[0]batch_size = 100 # 从train的集合中选取batch_size个训练数据 xs, ys = mnist.train.next_batch(batch_size) # 输出“X shape:(100,784)” print "X shape: ", xs.shape # 输出"Y shape:(100,10)" print "Y shape: ", ys.shape
从上面的代码中可以看出,通过input_data.read_data_sets函数生成的类会自动将MNIST数据集划分为train, validation和test三个数据集,其中train这个集合内含有55000张图片,validation集合内含有5000张图片,这两个集合组成了MNIST本身提供的训练数据集。test集合内有10000张图片,这些图片都来自与MNIST提供的测试数据集。处理后的每一张图片是一个长度为784的一维数组,这个数组中的元素对应了图片像素矩阵中的每一个数字(28*28=784)。因为神经网络的输入是一个特征向量,所以在此把一张二维图像的像素矩阵放到一个一维数组中可以方便tensorflow将图片的像素矩阵提供给神经网络的输入层。像素矩阵中元素的取值范围为[0, 1],它代表了颜色的深浅。其中0表示白色背景,1表示黑色前景。为了方便使用随机梯度下降,input_data.read_data_sets函数生成的类还提供了mnist.train.next_batch函数,它可以从所有的训练数据中读取一小部分作为一个训练batch。
mnist.train.xs训练集特征
mnist.train.ys训练集分类标签
软件版本
TensorFlow 1.0.1 + Python 2.7.12
参考
①、Yann LeCun教授网站中对MNIST数据集的详细介绍及数据下载。
②、tensorflow官网对MNIST数据集的介绍及部分操作。
③、《TensorFlow实战Google深度学习框架》第五章。
使用Tensorflow操作MNIST数据相关推荐
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)
续集请点击我:tensorflow学习笔记--使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...
- TensorFlow学习笔记(十四)TensorFLow 用mnist数据做classification
之前的例子,给的都是tf来做regression,也就是回归问题,现在用tf来做一个classification的处理,也就是分类问题. 这里用的数据集是mnist数据. 代码: "&quo ...
- Tensorflow实现MNIST数据自编码(3)
前面自编码(1)和自编码(2)是针对高维数据维数进行降低维数角度改进模型,但是还需要让这些特征具有抗干扰能力,输入的特征数据受到干扰时,生成特征依然不会怎么变化,使自动编码器具有更好的泛化能力 #en ...
- Tensorflow实现MNIST数据自编码(1)
自编码网络能够自学习样本特征的网络,属于无监督学习模型的网络,可以从无标注的数据中学习特征,它可以给出比原始数据更好的特征描述,具有较强的特征学习能力. 主要的网络结构就是高维特征样本--->编 ...
- Tensorflow实现MNIST数据自编码(2)
对自编码(1)进行改进,(1)中实现的网络是用2个编码层,2个解码层,现在对它进行添加编码层和解码层分别为4层 原始数据784-->256-->64-->16-->2 #enc ...
- Tensorflow实战之下载MNIST数据,自动分成train, validation和test三个数据集
TensorFlow 实战Google深度学习框架 第2版 ,郑泽宇之P96.下载MNIST数据,自动分成train, validation和test三个数据集,源码如下: #!/usr/bin/en ...
- 机器学习入门案例简单理解——Tensorflow之MNIST解析
深度学习简单介绍 首先要简单区别几个概念:人工智能,机器学习,深度学习,神经网络.这几个词应该是出现的最为频繁的,但是他们有什么区别呢? 人工智能:人类通过直觉可以解决的问题,如:自然语言理解,图像识 ...
- tensorflow saver_机器学习入门(6):Tensorflow项目Mnist手写数字识别-分析详解
本文主要内容:Ubuntu下基于Tensorflow的Mnist手写数字识别的实现 训练数据和测试数据资料:http://yann.lecun.com/exdb/mnist/ 前面环境都搭建好了,直接 ...
- TensorFlow 深入MNIST
原文地址:http://www.tensorfly.cn/tfdoc/tutorials/mnist_pros.html Table of Contents 安装 加载MNIST数据 运行Tensor ...
最新文章
- python dlib实现面部标志识别
- CF1398D Colored Rectangles (记忆化搜索DP)
- WISEGATE:SIEM的最佳实践讨论
- 给按钮、静态文本 CListCtrl等添加功能提示(tollTip)功能
- 抖音推荐机制与算法探讨
- 音频开发中常见的四个错误
- 20190403vim编辑器week1_day3
- linux脚本登录启动失败,linux-从bash脚本启动进程失败
- 用RAII技术管理资源及其泛型实现
- 秘密潜入2小辣椒_短暂潜入2次,我显然不知道自己作为开发人员正在做什么
- Linux网络协议栈:用eBPF写TCP拥塞控制算法
- Python 25 Django跨域请求
- 牛客国庆集训派对Day3: G. Stones(博弈+SG)
- ASP.NET基础教程-利用javascript将光标定位到文本框
- 根据经纬度查询数据mysql
- 好佳居软装十大品牌 软装可以提升格调
- 非功能性需求基础概念
- 一寸光阴一寸金,寸金难买寸光阴、时间就是生命,浪费时间就是慢性自杀。
- 网页视频倍速播放的方法
- 51 汇编语言编程--输入密码
热门文章
- python能够处理的最大整数是多少_python中能输出的最大整数位是多少
- 简单Android手机APP地图,android最简单手机地图APP(只需5分钟)
- 两位一体数码管引脚图_两位一体共阴数码管,第二位数字显示不出来,按钮第7按钮按下去来回显示,但第一位又不显示了,,,急...
- 计算机导论成绩分为几部分,计算机导论复习题(选择部分)汇总.docx
- 三星 android recovery,三星recovery模式怎么操作
- java 循环展开_Java在Debug的时候,有些变量能无限展开(循环了)?
- 10个数冒泡排序流程图_(立下flag)每日10道前端面试题01
- 基于ESP32的竞赛裁判系统功能调试-与微机通讯
- 第十五届全国大学生智能汽车竞赛青少年组获奖名单
- 操作canal,报错:Caused by: java.io.IOException: end of stream when reading header