matlab解析mnist,matlab 解析 mnist 数据集
mnist database(手写字符识别) 的数据集下载地:http://yann.lecun.com/exdb/mnist/。
共有四个文件需要下载:
train-images-idx3-ubyte.gz,训练集,共 60,000 幅(28*28)的图像数据;
train-labels-idx1-ubyte.gz,训练集的标签信息(取值为 0-9),60,000*1
t10k-images-idx3-ubyte.gz,测试集(t: test, 10k: 10,000),共 10,000 副(28*28)的图像数据
t10k-labels-idx1-ubyte.gz,测试集的标签呢信息(取值为 0-9),10,000*1
文件名中的 ubyte 表示数据类型,无符号的单字节类型,对应于 matlab 中的 uchar 数据类型。
注:在 Windows 平台下解压这些文件时,操作系统会自动修改这些文件的文件名,比如会将倒数第二个短线-修改为.,也即 train-images-idx3-ubyte.gz 解压为train-images.idx3-ubyte(文件类型就自作主张地变成了idx3-ubyte),注意文件的对应。
f = fopen('./dataset/t10k-images-idx3-ubyte', 'r')
assert(f >= 3, '文件打开失败'); % 一般文件的文件标识符必须大于等于3
g = fopen('./dataset/t10k-labels-idx1-ubyte', 'r');
assert(g >= 3, '文件打开失败');
我们再来看 mnist 数据集官网给出的关于这四个文件格式的说明:
也即在真正的 label 数据或图像像素信息开始之前会有一些表头信息,对于 label 文件是 2 个 32位整型,对于 image 文件是 4 个 32位整型,所以我们需要对这两个文件分别移动文件指针,以指向正确的位置。
fread(f, 4, 'int32');
fread(g, 2, 'int32');
按 label 分不同的文件,就原始数据组织成 .ascii 文件
% 首先创建这些 .ascii 文件
fids = zeros(1, 10);
for i = 0:9,
fids(i+1) = fopen(['test' num2str(i) '.ascii'], 'w');
end
因为文件内容比较大,出于内存的考虑,最好不要一次全部读入内存,而是逐块逐块地读取,比如一次读 1000 个图像信息,
n = 1000;
times = 60; % 60*1000 = 60,000
for i = 1:times,
rawimages = fread(f, [28*28, n], 'uchar');
rawlabels = fread(g, n, 'uchar');
for j = 1:n,
fprintf(fids(rawlabels(j)+1), '%3d ', rawimages(:, j));
fprintf(fids(rawlabels(j)+1), '\n');
end
end
最后再将 .ascii 格式文件保存为 .mat 文件,
for c = 0:9,
D = load(['test' num2str(c) '.ascii'], '-ascii');
fprintf('%5d digits of class %1d', size(D, 1), c);
save(['train' num2str(c) '.mat'], 'D', '-mat');
fclose(fids(c+1));
end
别忘了删除无用的 .ascii 格式文件:
dos('del *.ascii'); % Windows 平台下dos 命令
% Linux 平台下:dos('rm *.ascii');
matlab解析mnist,matlab 解析 mnist 数据集相关推荐
- MNIST手写字体数据集解析
1 MNIST数据集 1.0 简介 按国家标准修订技术数据集(Modified National Institute of Standards and Technology database, MNI ...
- Matlab中的参数解析
本文中,我们讨论如何在Matlab中进行参数解析. 参数解析对于软件开发和程序设计至关重要.在Matlab中,函数参数传递一般采用直接传值方式,最复杂的情况下也就是使用varargin变长数组.那么如 ...
- Matlab的filtfilt函数解析与C++实现
Matlab的filtfilt函数解析与C++实现 0.前言 1.filtfilt函数的解析 1.1 主要流程 1.2 边界的延拓 1.3 边界效应的优化 1.4 滤波器系数获取 2.C++实现及对比 ...
- MATLAB plot绘图参数解析
功能 二维曲线绘图 语法 1 2 3 4 5 6 7 plot(Y) plot(X1,Y1,...) plot(X1,Y1,LineSpec,...) plot(...,'PropertyName', ...
- matlab 参数优化函数,MATLAB优化函数fmincon解析
MATLAB,优化函数fmincon解析 [x,fval,exitflag,output,lambda,grad,hessian]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,n ...
- 将MNIST手写数字数据集导入NumPy数组(《深度学习入门:基于Python的理论与实现》实践笔记)
将MNIST手写数字数据集导入NumPy数组(<深度学习入门:基于Python的理论与实现>实践笔记) 一.下载MNIST数据集(使用urllib.request.urlretrieve( ...
- MNIST及FASHION MNIST 数据读取
概要 代码 结果展示 概要 mnist 数据集链接:http://yann.lecun.com/exdb/mnist/ fashion_mnist:https://github.com/zalando ...
- 哈尔滨理工大学matlab,微软用户-Matlab软件简介哈尔滨理工大学数学建模组ppt课件...
<微软用户-Matlab软件简介哈尔滨理工大学数学建模组ppt课件>由会员分享,可在线阅读,更多相关<微软用户-Matlab软件简介哈尔滨理工大学数学建模组ppt课件(41页珍藏版) ...
- 聚类分析matlab检验,「matlab聚类分析」聚类分析的Matlab 程序—系统聚类(附有案例分析) - 金橙教程网...
matlab聚类分析 聚类分析的Matlab 程序-系统聚类 (1)计算数据集每对元素之间的距离,对应函数为pdistw. 调用格式:Y=pdist(X),Y=pdist(X,'metric'), Y ...
最新文章
- python 排序算法 简书_Python---简析八大排序算法
- 16. 3Sum Closest 最接近的三数之和
- 简单的WinInet编程
- 论文浅尝 | 可建模语义分层的知识图谱补全方法
- 生物大分子的计算机模拟就业,生物大分子模拟
- 导师没项目怎么办?不如看看这些
- Apache kafka原理与特性(0.8V)
- 如果连这10个Python缩写都不知道,那你一定是Python新手
- 机器学习实战(七)线性回归(Linear Regression)
- The process names are sorted in descending
- vue.js MVVM模式介绍及案例
- 李宏毅-《深度学习人类语言处理》国语版(2020)视频课程及ppt分享
- Foreach In(C#)
- 用C语言播放mp3格式的音乐
- 在matlab下使用深度学习预训练模型Alex Net进行迁移学习的实验与分析
- Win11系统怎么设置默认浏览器教学
- pandas处理excel单元格合并后的列
- prometheus监控之postgresql
- 九宫格拼图游戏初版(练练手)
- Parallels Desktop 16 网络初始化失败
热门文章
- 内存气球 linux,【官方推荐】Linux环境下安装EduSoho - 在线学习网络课程平台_课程内容平台_EduSoho官方教程 - 气球鱼学院...
- 慧通编程入门课程 - 3色彩斑斓
- 软件工程毕业设计课题(3)基于python的毕业设计python电子书小说网站系统毕设作品源码
- Python实现个人微信号自动监控告警
- IIS中配置PHP运行环境
- ffmpeg configure中文帮助文档
- [绝杀技] 通过.ibd对mysql数据恢复
- Cocos2d-x之Touch事件
- es日期format_es-sql – 版本5.6.3 – date_format 查询时间格式化使用说明
- 音符起始点检测(音频节奏检测)(7)