这个例子展示了如何创建和训练一个简单的卷积神经网络的深度学习分类。卷积神经网络是深度学习的基本工具,特别适用于图像识别。
这个例子演示了如何:
加载图像数据。
定义网络架构。
指定培训选项。
培训网络。
预测新数据的标签,计算分类准确率。
有关如何互动创建和培训简单图像分类网络的示例,请参阅使用深层网络设计器创建简单的图像分类网络。
将数字样例数据加载为图像数据存储。的imageageAtastore.
功能自动标签的图像基于文件夹名称。
digitDatasetPath = fullfile (matlabroot,'工具箱',“nnet”,“nndemos”,…“nndatasets”,“DigitDataset”);imds = imageageataStore(DigitDatasetPath,…'insertumbfolders',真的,…'labelsource',“foldernames”);
将数据划分为训练数据集和验证数据集,训练集中的每个类别包含750张图像,验证集中包含每个标签的剩余图像。splitEachLabel
将映像数据存储分割为两个新的数据存储,用于培训和验证。
numtrainfiles = 750;[IMDStrain,IMDSValidation] = SpliteachLabel(IMDS,NumTrainfiles,“随机”);
定义卷积神经网络结构。指定网络输入层中图像的大小和分类层之前的全连通层中类的数量。每个图像是28 × 28 × 1像素,有10个类。
inputSize = [28 28 1];numClasses = 10;layers = [imageInputLayer(inputSize)卷积2dlayer (5,20) batchNormalizationLayer reluLayer fullyConnectedLayer(numClasses) softmaxLayer classiationlayer];
有关深度学习层的更多信息,请参见深度学习层列表。
指定培训选项并培训网络。
默认情况下,trainNetwork
如果一个可用的GPU,则使用GPU,否则,它使用CPU。GPU培训需要并行计算工具箱™和支持的GPU设备。金宝app有关支持设备的信息,请参阅金宝appGPU支金宝app持版本(并行计算工具箱)。属性指定执行环境“ExecutionEnvironment”
名称 - 值对参数培训选项
。
选项=培训选项(“个”,…“MaxEpochs”,4,…“ValidationData”imdsValidation,…'验证职业',30,…“详细”,错误的,…“阴谋”,“训练进步”);网= trainNetwork (imdsTrain层,选项);
有关培训选项的更多信息,请参见设置参数,训练卷积神经网络。
分类验证数据并计算分类准确性。
YPred =分类(净,imdsValidation);YValidation = imdsValidation.Labels;准确度=平均值(YPred == YValidation)
精度= 0.9892
对于深度学习的下一步,你可以尝试使用预先训练过的网络来完成其他任务。通过迁移学习或特征提取解决图像数据上的新的分类问题。有关示例,请参见使用迁移学习更快地开始深度学习和使用从佩带的网络中提取的功能进行火车分类器。要了解更多关于预训练网络的信息,请参见普里德深度神经网络。