主要内容

创建简单的图像分类网络

这个例子展示了如何创建和训练一个简单的卷积神经网络进行深度学习分类。卷积神经网络是深度学习的基本工具,尤其适用于图像识别。

该示例演示了如何:

  • 加载图像数据。

  • 定义网络架构。

  • 指定培训选项。

  • 培训网络。

  • 预测新数据的标签,计算分类精度。

有关演示如何交互式地创建和训练简单图像分类网络的示例,请参见使用深度网络设计器创建简单的图像分类网络

加载数据

将数字样本数据加载为图像数据存储。的imageDatastore函数根据文件夹名称自动标记图像。

digitDatasetPath = fullfile(matlabroot,“工具箱”“nnet”“nndemos”...“nndatasets”“DigitDataset”);imds = imageDatastore(digitDatasetPath,...“IncludeSubfolders”,真的,...“LabelSource”“foldernames”);

将数据划分为训练数据集和验证数据集,使训练集中的每个类别包含750张图像,验证集包含每个标签的剩余图像。splitEachLabel将图像数据存储拆分为两个新的数据存储,用于训练和验证。

numTrainFiles = 750;[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,“随机”);

定义网络架构

定义卷积神经网络架构。在分类层之前指定网络输入层的图像大小和全连接层的类数。每张图像是28 × 28 × 1像素,有10个类。

inputSize = [28 28 1];numClasses = 10;layers = [imageInputLayer(inputSize) convolution2dLayer(5,20) batchNormalizationLayer reluLayer fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];

有关深度学习层的更多信息,请参见深度学习层列表

列车网络的

指定训练选项并训练网络。

默认情况下,trainNetwork如果有GPU,则使用GPU,否则使用CPU。在GPU上进行训练需要并行计算工具箱™和受支持的GPU设备。金宝app有关受支持设备的信息,请参见金宝appGPU支金宝app持版本(并行计算工具箱).属性指定执行环境“ExecutionEnvironment”的名称-值对参数trainingOptions

选项= trainingOptions(“个”...“MaxEpochs”4...“ValidationData”imdsValidation,...“ValidationFrequency”30岁的...“详细”假的,...“阴谋”“训练进步”);net = trainNetwork(imdsTrain,layers,options);

图训练进度(26-Feb-2022 11:17:11)包含2个axis对象和另一个类型为uigridlayout的对象。坐标轴对象1包含11个类型为patch、text、line的对象。坐标轴对象2包含11个类型为patch、text、line的对象。

有关培训选项的更多信息,请参见参数设置与卷积神经网络训练

测试网络

对验证数据进行分类,计算分类精度。

YPred =分类(net,imdsValidation);YValidation = imdsValidation.Labels;accuracy = mean(YPred == YValidation)
准确度= 0.9892

对于深度学习的下一步,你可以尝试使用预训练的网络来完成其他任务。通过迁移学习或特征提取解决图像数据上的新分类问题。有关示例,请参见使用迁移学习更快地开始深度学习而且使用从预训练网络中提取的特征的训练分类器.要了解关于预训练网络的更多信息,请参见预训练的深度神经网络

另请参阅

|

相关的话题