MNIST数据库格式及简介

最近要用到这个手写数字数据库,写个文档给用的着的人.

MNIST database,一个手写数字的图片数据库,每一张图片都是0到9中的单个数字,比如下面几个:


每一张都是抗锯齿(Anti-aliasing)的灰度图,图片大小28*28像素,数字部分被归一化为20*20大小,位于图片的中间位置,保持了原来形状的比例.

数据分布

MNIST数据库的来源是两个数据库的混合,一个来自Census Bureau employees(SD-3),一个来自high-school students(SD-1);有训练样本60000个,测试样本10000个.训练样本和测试样本中,employee和student写的都是各占一半.60000个训练样本一共大概250个人写的.训练样本和测试样本的来源人群没有交集.

MNIST数据库也保留了手写数字与身份的对应关系.

数据格式

在这里下载http://yann.lecun.com/exdb/mnist/

包含4个文件

train-images-idx3-ubyte: training set images
train-labels-idx1-ubyte: training set labels
t10k-images-idx3-ubyte: test set images
t10k-labels-idx1-ubyte: test set labels

分别是图片文件和标签文件,存储格式是MSB在前(high endian),这里提供一个matlab文件(Hinton大牛的)来将MNIST database转成matlab的数据格式.
convert.m

转换完之后,训练数据会保存为digit0.mat至digit9.mat十个文件,测试数据保存为test0.mat到test9.mat.比如digit0.mat,格式为5923*784,就是说训练数据里有5923个0的手写数字,784是因为将28*28写成了一行,reshape一下就可以变成原来的样子.