Create Simple Image Classification Network
This example shows how to create and train a simple convolutional neural network for deep learning classification. Convolutional neural networks are essential tools for deep learning and are especially suited for image recognition.
The example demonstrates how to:
Load image data.
Define the network architecture.
Specify training options.
Train the network.
Predict the labels of new data and calculate the classification accuracy.
有关如何交互创建和训练简单图像分类网络的示例,请参见Create Simple Image Classification Network Using Deep Network Designer.
Load Data
Load the digit sample data as an image datastore. The成像
function automatically labels the images based on folder names.
digitDatasetPath = fullfile (matlabroot,'工具箱','nnet','nndemos',...'nndatasets','DigitDataset');imds = imagedatastore(digitdatasetpeth,...“包括橡皮folders”,true,...“ Labelsource”,'foldernames');
Divide the data into training and validation data sets, so that each category in the training set contains 750 images, and the validation set contains the remaining images from each label.splitEachLabel
splits the image datastore into two new datastores for training and validation.
numtrainfiles = 750;[imdstrain,imdsvalidation] = spliteachlabel(imds,numtrainfiles,'randomize');
Define Network Architecture
Define the convolutional neural network architecture. Specify the size of the images in the input layer of the network and the number of classes in the fully connected layer before the classification layer. Each image is 28-by-28-by-1 pixels and there are 10 classes.
inputSize = [28 28 1]; numClasses = 10; layers = [ imageInputLayer(inputSize) convolution2dLayer(5,20) batchNormalizationLayer reluLayer fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];
For more information about deep learning layers, seeList of Deep Learning Layers.
Train Network
Specify the training options and train the network.
By default,trainNetwork
如果有可用的话,请使用GPU,否则使用CPU。在GPU上进行培训需要并行计算工具箱™和支持的GPU设备。万博1manbetx有关支持设备的信息,请参阅万博1manbetxGPU Support by Release(Parallel Computing Toolbox). You can also specify the execution environment by using the'ExecutionEnvironment'
名称值对参数训练
.
选项=训练('sgdm',...“MaxEpochs”,4,...'验证data',imdsValidation,...“验证频率”,30,...'Verbose',错误的,...“阴谋”,'training-progress');net = trainNetwork(imdsTrain,layers,options);
For more information about training options, seeSet Up Parameters and Train Convolutional Neural Network.
Test Network
对验证数据进行分类并计算分类精度。
YPred = classify(net,imdsValidation); YValidation = imdsValidation.Labels; accuracy = mean(YPred == YValidation)
accuracy = 0.9892
For next steps in deep learning, you can try using pretrained network for other tasks. Solve new classification problems on your image data with transfer learning or feature extraction. For examples, seeStart Deep Learning Faster Using Transfer Learning和使用从预读网络中提取的功能的火车分类器. To learn more about pretrained networks, see预处理的深神经网络.
See Also
相关话题
- Start Deep Learning Faster Using Transfer Learning
- Create Simple Image Classification Network Using Deep Network Designer
- 尝试在10行MATLAB代码中进行深度学习
- 使用验证的网络对图像进行分类
- Get Started with Transfer Learning
- Transfer Learning with Deep Network Designer
- Create Simple Sequence Classification Network Using Deep Network Designer