MNIST手写数字数据库原始下载地址:
MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burgesyann.lecun.com0.前言
网上很多转换MNIST手写数字的程序,鲜有MATLAB能直接使用的数据库版本。
1.MATLAB元胞数组数据格式
两个文件:
Train.mat:内含元胞数组Train;Train{i,1}为图像文件,大小28*28像素(0~255);Train{i,2}为标签文件,为i对应图片的标签值(0~9);
Test.mat:内含元胞数组Test;Test{i,1}为图像文件,大小28*28像素(0~255);Test{i,2}为标签文件,为i对应图片的标签值(0~9);
2.转换过程
按照官方的二进制格式说明,扔掉文件的前面的说明部分直接读取数据部分。
2.1训练数据
function TT
fidimg=fopen('train-images.idx3-ubyte','rb')
fidla=fopen('train-labels.idx1-ubyte','rb')
[img,count]=fread(fidimg,16);
[label,count]=fread(fidla,8);
Train=cell(60000,2);
for i=1:1000:60000 i
[img,count]=fread(fidimg,[28,28]);
[label,count]=fread(fidla,1);
Train{i,1}=img;
Train{i,2}=label;
% na=[num2str(label),'-',num2str(i),'.jpg'];%
% imwrite(img,na)
end
% save Train.mat Train
end
2.2 测试数据
function TTest
fidimg=fopen('t10k-images.idx3-ubyte','rb')
fidla=fopen('t10k-labels.idx1-ubyte','rb')
[img,count]=fread(fidimg,16);
[label,count]=fread(fidla,8);
Test=cell(10000,2);
for i=1:1:10000
i
[img,count]=fread(fidimg,[28,28]);
[label,count]=fread(fidla,1);
Test{i,1}=img;
Test{i,2}=label;
end
save Test.mat Test
end
3.部分数据示例
4.MNIST手写数字MATLAB版下载地址
https://pan.baidu.com/s/10MD4ww9fQ_uWB0wj7r6NTw
提取码:fhjv
5.联系方式:
Email:Moon@momocv.com