您的位置:首页 > 编程语言 > MATLAB

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

2015-12-28 10:21 435 查看

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);


读取出来的手写数字如图:



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与上面一样只是数量不同
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息