创建简单的图像分类网络
这个例子展示了如何创建和训练一个简单的卷积神经网络进行深度学习分类。深度学习卷积神经网络是必不可少的工具,尤其适合于图像识别。
这个例子演示了如何:
加载图像数据。
定义网络体系结构。
指定培训选项。
培训网络。
预测新数据和计算的标签分类精度。
为一个例子,演示如何交互式地创建和训练一个简单的图像分类网络,看到的创建简单的图像分类网络使用深层网络设计师。
加载数据
加载数字样本数据作为图像数据存储。的imageDatastore
函数自动标签图像基于文件夹的名字。
digitDatasetPath = fullfile (matlabroot,“工具箱”,“nnet”,“nndemos”,…“nndatasets”,“DigitDataset”);imd = imageDatastore (digitDatasetPath,…“IncludeSubfolders”,真的,…“LabelSource”,“foldernames”);
将数据分为训练和验证数据集,这样每个类别的训练集包含750张图片,和验证集包含剩余的图像从每个标签。splitEachLabel
将图像数据存储分为两个新的数据存储的培训和验证。
numTrainFiles = 750;[imdsTrain, imdsValidation] = splitEachLabel (imd, numTrainFiles“随机”);
定义网络体系结构
定义了卷积神经网络架构。指定大小的图像网络的输入层和类的数量完全连接层分类前层。28-by-28-by-1每个图像像素和有10类。
inputSize = [28 28 1];numClasses = 10;层= [imageInputLayer (inputSize) convolution2dLayer (20) batchNormalizationLayer reluLayer fullyConnectedLayer (numClasses) softmaxLayer classificationLayer);
关于深层学习的更多信息,请参阅深度学习层的列表。
列车网络的
指定培训方案和培训网络。
默认情况下,trainNetwork
使用GPU如果是可用的,否则,它使用一个CPU。培训在GPU需要并行计算工具箱™和支持GPU设备。金宝app支持设备的信息,请参阅金宝appGPU计算的需求(并行计算工具箱)。您还可以指定使用的执行环境“ExecutionEnvironment”
名称-值对的观点trainingOptions
。
选择= trainingOptions (“个”,…“MaxEpochs”4…“ValidationData”imdsValidation,…“ValidationFrequency”30岁的…“详细”假的,…“阴谋”,“训练进步”);网= trainNetwork (imdsTrain层,选项);
关于培训选项的更多信息,请参阅设置参数和卷积神经网络训练。
测试网络
分类验证数据和计算分类精度。
YPred =分类(净,imdsValidation);YValidation = imdsValidation.Labels;精度=意味着(YPred = = YValidation)
精度= 0.9888
下一步的深入学习,你可以尝试使用pretrained网络其他任务。解决新分类问题在你的图像数据传输学习或特征提取。有关示例,请参见开始使用转移学习深度学习更快和火车从Pretrained网络分类器使用的特性。更多地了解pretrained网络,看到的Pretrained深层神经网络。