MNIST数据格式和Matlab(Octave)读取

Yann LeCun教授的MNIST一共有四个文件:

minist digit链接

1.train-image

2.train-label

3.test-image

4.test-label

他们的格式分别如下


1.train_image:

16B头部的描述,共有60000个图像样本,

每个样本为28*28大小,即60000*28*28+16。

MATLAB(Octave)代码如下:

fp =fopen('train-images-idx3-ubyte','r');

%magic=fread(fp,4);  没有转为int32读4B

magic=fread(fp, 1,'int32', 0, 'ieee-be');

size=fread(fp, 1, 'int32',0, 'ieee-be');

rows=fread(fp, 1, 'int32',0, 'ieee-be');

cols=fread(fp, 1, 'int32',0, 'ieee-be');

image1=fread(fp,[28,28]);

imshow(image1);
fclose(fp);

读取出来的手写数字如图(是翻转的,没多大关系MNIST数据格式和Matlab(Octave)读取



2.train-label:

8B头部描述+60000x1Blabel

fp = fopen(filename,'rb');

magic = fread(fp, 1,'int32', 0, 'ieee-be');

numLabels = fread(fp, 1,'int32', 0, 'ieee-be');

labels =fread(fp,1);

fclose(fp);

3.test-image与label与上面一样只是数量不同


你可能感兴趣的:(matlab,octave,手写字体识别)