Matlab&深度学习
1.为什么使用Matlab?
如今Python语言占据了深度学习,然而Matlab也是可以做的。
好奇心,尝鲜,学习
Matlab的优点:
使用应用程序和可视化工具创建、修改和分析深度学习架构
使用应用程序预处理数据,并自动对图像、视频和音频数据进行真值标注
在 NVIDIA® GPU、云和数据中心资源上加速算法,而无需专门编程
与基于 TensorFlow、PyTorch 和 MxNet 等框架的使用者开展协作
使用强化学习仿真和训练动态系统行为
从物理系统的 MATLAB 和 Simulink® 模型生成基于仿真的训练和测试数据
2.入门——手写数字识别
2.0环境介绍
Matlab 2019b
RTX 2060
GPU支持
2.1手写数字图片集
MNIST是手写数字图片数据集,包含60000张训练样本和10000张测试样本。MNIST数据集来自美国国家标准与技术研究所,National Institute of Standards and Technology(NIST),M是Modified的缩写。训练集是由来自250个不同人手写的数字构成,其中50%是高中学生,50%来自人口普查局的工作人员。测试集也是同样比例的手写数字数据。每张图片有28x28个像素点构成,每个像素点用一个灰度值表示,这里是将28*28的像素展开为一个一维的行向量(每行784个值)。图片标签为one-hot编码:0-9
2.2Matlab读取Mnist数据集获取图像和标签
datapath = "./Mnist/";
filenameImagesTrain = strcat(datapath, "train-images-idx3-ubyte");
filenameLabelsTrain = strcat(datapath, "train-labels-idx1-ubyte");
filenameImagesTest = strcat(datapath, "t10k-images-idx3-ubyte");
filenameLabelsTest = strcat(datapath, "t10k-labels-idx1-ubyte");
XTrain = processMNISTimages(filenameImagesTrain);
YTrain = processMNISTlabels(filenameLabelsTrain);
XTest = processMNISTimages(filenameImagesTest);
YTest = processMNISTlabels(filenameLabelsTest);
% 处理Mnist数据集图像
function X = processMNISTimages(filename)
[fileID,errmsg] = fopen(filename,'r','b');
if file