加载数据
将数字样本数据加载为图像数据存储。imageDatastore 函数根据文件夹名称自动对图像加标签。
digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos', ...
'nndatasets','DigitDataset');
imds = imageDatastore(digitDatasetPath, ...
'IncludeSubfolders',true, ...
'LabelSource','foldernames');
将数据划分为训练数据集和验证数据集,以使训练集中的每个类别包含 750 个图像,并且验证集包含对应每个标签的其余图像。splitEachLabel 将数据存储拆分为两个新的数据存储以用于训练和验证。
numTrainFiles = 750;
[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomize');
定义网络架构
定义卷积神经网络架构:
大小为 [28 28 1] 的图像输入层,输入图像的大小
三个二维卷积层,滤波器大小为 3 并分别具有 8、16 和 32 个滤波器
每个卷积层后有一个泄漏 ReLU 层
大小为 10 的全连接层,类的数量
Softmax 层
分类层
对于每个卷积层,将权重初始化函数设置为 leakyHe 函数。在本示例末尾列出的 leakyHe 函数接受输入 sz(层权重的大小)