主要内容

创建简单的图像分类网络

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

该示例演示了如何:

  • 加载图像数据。

  • 定义网络架构。

  • 指定培训选项。

  • 训练网络。

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

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

加载数据

将数字示例数据加载为图像数据存储。的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设备。万博1manbetx有关支持的设备的信息,请参见万博1manbetxGPU支万博1manbetx持按版本划分(并行计算工具箱).方法还可以指定执行环境“ExecutionEnvironment”的名值对参数trainingOptions

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

图Training Progress (26-Feb-2022 11:17:11)包含2个axis对象和另一个类型为uigridlayout的对象。Axes对象1包含11个类型为patch、text、line的对象。Axes对象2包含11个类型为patch、text、line的对象。

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

测试网络

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

YPred = category (net,imdsValidation);YValidation = imdsValidation.Labels;精度=平均值(YPred == YValidation)
准确度= 0.9892

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

另请参阅

|

相关的话题