手写数字数据集 test和train两个文件夹分别放置了1万个测试数据和6万了训练数据 在两个文件夹中都分别放置有:
1.有0~9九个数字分类放置的文件夹
2.有全部图片放置在一起的文件夹
3.有所有图片的图片名称和对应0~9分类标签的csv文件,已按照乱序打乱排列
4.有csv文件中,文件名列的pickle文件和json文件
5.有csv文件中,文件名列对应的0~9分类标签的pickle文件和json文件
来自NIST的原始黑白(双层)图像被尺寸标准化以适合20x20像素的盒子,同时保持它们的纵横比。由于归一化算法使用的抗锯齿技术,所得到的图像包含灰度级。通过计算像素的质心并平移图像以将该点定位在28×28场的中心,图像以28×28图像为中心。
使用一些分类方法(特别是基于模板的方法,例如SVM和K-最近邻居),当数字以边界框而不是质心为中心时,错误率会提高。如果您进行此类预处理,则应在出版物中报告。
MNIST数据库由NIST的特殊数据库3和特殊数据库1构成,其中包含手写数字的二进制图像。NIST最初将SD-3指定为训练集,将SD-1指定为测试集。但是,SD-3比SD-1更清洁,更容易识别。造成这种情况的原因可以从人口普查局员工收集SD-3,而高中学生收集SD-1。从学习实验中得出合理的结论要求结果与整套样本中训练集和测试的选择无关。因此,有必要通过混合NIST的数据集来构建新的数据库。
MNIST训练集由SD-3的30,000个模式和SD-1的30,000个模式组成。我们的测试装置由SD-3的5,000种模式和SD-1的5,000种模式组成。60,000个模式训练集包含大约250个作者的例子。我们确保训练集和测试集的作者集是不相交的。
SD-1包含由500个不同作者编写的58,527位数字图像。与SD-3相反,SD-3中每个写入器的数据块按顺序出现,SD-1中的数据被加扰。SD-1的编写者身份可用,我们使用此信息来解读编写者。然后我们将SD-1分成两部分:前250名作家写的字符进入我们的新训练集。其余250位作家被放入我们的测试集中。因此,我们有两组,每组有近30,000个例子。新的训练集完成了SD-3的足够示例,从模式#0开始,制作了一整套60,000种训练模式。类似地,新的测试集完成了SD-3示例,从模式#35,000开始,以制作具有60,000个测试模式的完整集。仅10,000个测试图像的子集(5,000个来自SD-1和5,本网站提供000-SD-3)。提供完整的60,000个样本培训套件。
已经使用该训练集和测试集测试了许多方法。这里有一些例子。有关这些方法的详细信息将在下一篇论文中给出。其中一些实验使用了数据库的一个版本,其中输入图像被去偏斜(通过计算最接近垂直的形状的主轴,并移动线以使其垂直)。在一些其他实验中,训练集增加了原始训练样本的人工扭曲版本。失真是移位,缩放,倾斜和压缩的随机组合。
MNIST数据库的文件格式
数据以非常简单的文件格式存储,用于存储矢量和多维矩阵。有关此格式的一般信息在本页末尾给出,但您无需阅读该信息即可使用数据文件。
文件中的所有整数都以大多数非英特尔处理器使用的MSB优先(高端)格式存储。英特尔处理器和其他低端机器的用户必须翻转标头的字节。
有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
训练集包含60000个示例,测试集包含10000个示例。
测试集的前5000个示例取自原始NIST训练集。最后的5000个来自原始的NIST测试集。第一个5000比过去5000更干净,更容易。
TRAINING SET LABEL FILE(train-labels-idx1-ubyte):
[offset] [type] [value] [描述]
0000 32位整数0x00000801(2049)幻数(MSB优先)
0004 32位整数60000项目数
0008无符号字节?? 标签
0009无符号字节?label
........
xxxx无符号字节?? 标签
标签值为0到9。
培训集图像文件(train-images-idx3-ubyte):
[offset] [type] [value] [描述]
0000 32位整数0x00000803(2051)幻数
0004 32位整数60000图像数
0008 32位整数28行数
0012 32位整数28列数
0016无符号字节? ?像素
0017无符号字节?? 像素
........
xxxx无符号字节?? 像素
像素按行排列。像素值为0到255. 0表示背景(白色),255表示前景(黑色)。
TEST SET LABEL FILE(t10k-labels-idx1-ubyte):
[offset] [type] [value] [描述]
0000 32位整数0x00000801(2049)幻数(MSB优先)
0004 32位整数10000项数
0008无符号字节?? 标签
0009无符号字节?label
........
xxxx无符号字节?? 标签
标签值为0到9。
测试集图像文件(t10k-images-idx3-ubyte):
[offset] [type] [value] [描述]
0000 32位整数0x00000803(2051)幻数
0004 32位整数10000个图像数
0008 32位整数28个行数
0012 32位整数28个列数
0016无符号字节? ?像素
0017无符号字节?? 像素
........
xxxx无符号字节?? 像素
像素按行排列。像素值为0到255. 0表示背景(白色),255表示前景(黑色)。
IDX文件格式
IDX文件格式是各种数值类型的向量和多维矩阵的简单格式。
基本格式是
幻数
大小的尺寸0
的大小在尺寸1米
大小的尺寸2
.....
大小在N维
数据
幻数是一个整数(MSB优先)。前2个字节始终为0。
第三个字节编码数据类型:
0x08:无符号字节
0x09:有符号字节
0x0B:短(2字节)
0x0C:int(4字节)
0x0D:float(4字节)
0x0E:double(8字节)
第4个字节编码向量/矩阵的维数:1表示向量,2表示矩阵....
每个维度的大小为4字节整数(MSB优先,高端,与大多数非英特尔处理器一样)。
数据存储在C数组中,即最后一维中的索引变化最快。