深度学习数据集——MNIST
2017-03-13 15:24
211 查看
MNIST数据集简介
MNIST(Mixed National Institute of Standards and Technology database)是一个计算机视觉数据集,它包含70000张手写数字的灰度图片,其中每一张图片包含
28 X 28 个像素点。可以用一个数字数组来表示这张图片:
每一张图片都有对应的标签,也就是图片对应的数字,例如上面这张图片的标签就是 1
数据集被分成两部分:60000 行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test)。
其中:60000 行的训练集分拆为 55000 行的训练集和 5000 行的验证集。
60000行的训练数据集是一个形状为
60000 行的训练数据集标签是介于 0 到 9 的数字,用来描述给定图片里表示的数字。称为 "one-hot
vectors"。 一个 one-hot 向量除了某一位的数字是 1 以外其余各维度数字都是 0。所以在此教程中,数字 n 将表示成一个只有在第 n 维度(从 0 开始)数字为 1 的 10 维向量。比如,标签 0 将表示成 ( [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] )。因此,其标签是一个
Tensorflow里面可以用如下代码导入MNIST数据集:
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets ( "MNIST_data/", one_hot=True )
成功获取MNIST数据集后,发现本地已经下载了4个压缩文件:
#训练集的压缩文件, 9912422 bytes
Extracting MNIST_data / train-images-idx3-ubyte.gz
#训练集标签的压缩文件,28881 bytes
Extracting MNIST_data / train-labels-idx1-ubyte.gz
#测试集的压缩文件,1648877 bytes
Extracting MNIST_data / t10k-images-idx3-ubyte.gz
#测试集的压缩文件,4542 bytes
Extracting MNIST_data / t10k-labels-idx1-ubyte.gz
我们可以在终端打印数据集的张量情况:
#训练集的张量
print ( mnist.train.images.shape )
#训练集标签的张量
print ( mnist.train.labels.shape )
#验证集的张量
print ( mnist.validation.images.shape )
#验证集标签的张量
print ( mnist.validation.labels.shape )
#测试集的张量
print ( mnist.test.images.shape )
#测试集标签的张量
print ( mnist.test.labels.shape )
张量打印结果如下:
( 55000, 784 )
( 55000, 10 )
( 5000, 784 )
( 5000, 10 )
( 10000, 784 )
( 10000, 10 )
我们发现:
1、MNIST数据集包含 55000 行训练集、5000 行验证集和10000 行测试集
2、每一张图片展开成一个 28 X 28 = 784 维的向量,展开的顺序可以随意的,只要保证每张图片的展开顺序一致即可
3、每一张图片的标签被初始化成 一个 10 维的“one-hot”向量
MNIST(Mixed National Institute of Standards and Technology database)是一个计算机视觉数据集,它包含70000张手写数字的灰度图片,其中每一张图片包含
28 X 28 个像素点。可以用一个数字数组来表示这张图片:
每一张图片都有对应的标签,也就是图片对应的数字,例如上面这张图片的标签就是 1
数据集被分成两部分:60000 行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test)。
其中:60000 行的训练集分拆为 55000 行的训练集和 5000 行的验证集。
60000行的训练数据集是一个形状为
[60000, 784]的张量,第一个维度数字用来索引图片,第二个维度数字用来索引每张图片中的像素点。在此张量里的每一个元素,都表示某张图片里的某个像素的强度值,值介于 0 和 1 之间。
60000 行的训练数据集标签是介于 0 到 9 的数字,用来描述给定图片里表示的数字。称为 "one-hot
vectors"。 一个 one-hot 向量除了某一位的数字是 1 以外其余各维度数字都是 0。所以在此教程中,数字 n 将表示成一个只有在第 n 维度(从 0 开始)数字为 1 的 10 维向量。比如,标签 0 将表示成 ( [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] )。因此,其标签是一个
[60000, 10]的数字矩阵。
Tensorflow里面可以用如下代码导入MNIST数据集:
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets ( "MNIST_data/", one_hot=True )
成功获取MNIST数据集后,发现本地已经下载了4个压缩文件:
#训练集的压缩文件, 9912422 bytes
Extracting MNIST_data / train-images-idx3-ubyte.gz
#训练集标签的压缩文件,28881 bytes
Extracting MNIST_data / train-labels-idx1-ubyte.gz
#测试集的压缩文件,1648877 bytes
Extracting MNIST_data / t10k-images-idx3-ubyte.gz
#测试集的压缩文件,4542 bytes
Extracting MNIST_data / t10k-labels-idx1-ubyte.gz
我们可以在终端打印数据集的张量情况:
#训练集的张量
print ( mnist.train.images.shape )
#训练集标签的张量
print ( mnist.train.labels.shape )
#验证集的张量
print ( mnist.validation.images.shape )
#验证集标签的张量
print ( mnist.validation.labels.shape )
#测试集的张量
print ( mnist.test.images.shape )
#测试集标签的张量
print ( mnist.test.labels.shape )
张量打印结果如下:
( 55000, 784 )
( 55000, 10 )
( 5000, 784 )
( 5000, 10 )
( 10000, 784 )
( 10000, 10 )
我们发现:
1、MNIST数据集包含 55000 行训练集、5000 行验证集和10000 行测试集
2、每一张图片展开成一个 28 X 28 = 784 维的向量,展开的顺序可以随意的,只要保证每张图片的展开顺序一致即可
3、每一张图片的标签被初始化成 一个 10 维的“one-hot”向量
相关文章推荐
- 深度学习数据集MNIST ImageNet COCO PASCAL VOC介绍
- 神经网络与深度学习 1.6 使用Python实现基于梯度下降算法的神经网络和MNIST数据集的手写数字分类程序
- 深度学习3番外篇---mnist数据集格式及转换
- TensorFlow【深度学习】MNIST 视觉数据集 初级
- Keras_深度学习_MNIST数据集手写数字识别之各种调参
- 第二课 深度学习的“hello world”——基于mnist数据集的手写数字识别
- 深度学习文章2:使用MNIST数据集验证Caffe是否安装成功
- 深度学习数据集MNIST ImageNet COCO PASCAL VOC介绍
- 深度学习torch之二(数据集的加载,mnist数据集为例)
- 深度学习torch之四(基于mnist数据集的实战练习实例)
- 深度学习框架TensorFlow学习与应用(六)——卷积神经网络应用于MNIST数据集分类
- 神经网络与深度学习 使用Python实现基于梯度下降算法的神经网络和自制仿MNIST数据集的手写数字分类可视化程序 web版本
- 深度学习入门教程UFLDL学习实验笔记二:使用向量化对MNIST数据集做稀疏自编码
- 【深度学习】在Mac下安装深度学习框架Caffe并测试Mnist数据集
- 深度学习框架Caffe学习笔记(4)-MNIST数据集转换成可视化图片
- 深度学习之路:(一)Keras中mnist数据集测试
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别
- 深度学习数据集