Main Content

Deep Learning with Images

Train convolutional neural networks from scratch or use pretrained networks to quickly learn new tasks

Create new deep networks for image classification and regression tasks by defining the network architecture and training the network from scratch. You can also use transfer learning to take advantage of the knowledge provided by a pretrained network to learn new patterns in new data. Fine-tuning a pretrained image classification network with transfer learning is typically much faster and easier than training from scratch. Using pretrained deep networks enables you to quickly learn new tasks without defining and training a new network, having millions of images, or having a powerful GPU.

After defining the network architecture, you must define training parameters using the trainingOptions function. You can then train the network using trainNetwork. Use the trained network to predict class labels or numeric responses.

You can train a convolutional neural network on a CPU, a GPU, multiple CPUs or GPUs, or in parallel on a cluster or in the cloud. Training on a GPU or in parallel requires Parallel Computing Toolbox™. Using a GPU requires a supported GPU device (for information on supported devices, see GPU Support by Release (Parallel Computing Toolbox)). Specify the execution environment using the trainingOptions function.


Deep Network DesignerDesign, visualize, and train deep learning networks


expand all

trainingOptionsOptions for training deep learning neural network
trainNetworkTrain deep learning neural network
analyzeNetworkAnalyze deep learning network architecture
squeezenetSqueezeNet convolutional neural network
googlenetGoogLeNet convolutional neural network
inceptionv3Inception-v3 convolutional neural network
densenet201DenseNet-201 convolutional neural network
mobilenetv2MobileNet-v2 convolutional neural network
resnet18ResNet-18 convolutional neural network
resnet50ResNet-50 convolutional neural network
resnet101ResNet-101 convolutional neural network
xceptionXception convolutional neural network
inceptionresnetv2Pretrained Inception-ResNet-v2 convolutional neural network
nasnetlargePretrained NASNet-Large convolutional neural network
nasnetmobilePretrained NASNet-Mobile convolutional neural network
shufflenetPretrained ShuffleNet convolutional neural network
darknet19DarkNet-19 convolutional neural network
darknet53DarkNet-53 convolutional neural network
efficientnetb0EfficientNet-b0 convolutional neural network
alexnetAlexNet convolutional neural network
vgg16VGG-16 convolutional neural network
vgg19VGG-19 convolutional neural network

Input Layers

imageInputLayerImage input layer
image3dInputLayer3-D image input layer
featureInputLayerFeature input layer

Convolution and Fully Connected Layers

convolution2dLayer2-D convolutional layer
convolution3dLayer3-D convolutional layer
groupedConvolution2dLayer2-D grouped convolutional layer
transposedConv2dLayerTransposed 2-D convolution layer
transposedConv3dLayerTransposed 3-D convolution layer
fullyConnectedLayerFully connected layer

Activation Layers

reluLayerRectified Linear Unit (ReLU) layer
leakyReluLayerLeaky Rectified Linear Unit (ReLU) layer
clippedReluLayerClipped Rectified Linear Unit (ReLU) layer
eluLayerExponential linear unit (ELU) layer
tanhLayerHyperbolic tangent (tanh) layer
swishLayerSwish layer
functionLayerFunction layer

Normalization, Dropout, and Cropping Layers

batchNormalizationLayerBatch normalization layer
groupNormalizationLayerGroup normalization layer
instanceNormalizationLayerInstance normalization layer
layerNormalizationLayerLayer normalization layer
crossChannelNormalizationLayer Channel-wise local response normalization layer
dropoutLayerDropout layer
crop2dLayer2-D crop layer
crop3dLayer3-D crop layer

Pooling and Unpooling Layers

averagePooling2dLayerAverage pooling layer
averagePooling3dLayer3-D average pooling layer
globalAveragePooling2dLayer2-D global average pooling layer
globalAveragePooling3dLayer3-D global average pooling layer
globalMaxPooling2dLayerGlobal max pooling layer
globalMaxPooling3dLayer3-D global max pooling layer
maxPooling2dLayerMax pooling layer
maxPooling3dLayer3-D max pooling layer
maxUnpooling2dLayerMax unpooling layer

Combination Layers

additionLayerAddition layer
multiplicationLayerMultiplication layer
concatenationLayerConcatenation layer
depthConcatenationLayerDepth concatenation layer

Output Layers

sigmoidLayerSigmoid layer
softmaxLayerSoftmax layer
classificationLayerClassification output layer
regressionLayerCreate a regression output layer
augmentedImageDatastoreTransform batches to augment image data
imageDataAugmenterConfigure image data augmentation
augmentApply identical random transformations to multiple images
layerGraphGraph of network layers for deep learning
plotPlot neural network layer graph
addLayersAdd layers to layer graph
removeLayersRemove layers from layer graph
replaceLayerReplace layer in layer graph
connectLayersConnect layers in layer graph
disconnectLayersDisconnect layers in layer graph
DAGNetworkDirected acyclic graph (DAG) network for deep learning
resnetLayersCreate 2-D residual network
resnet3dLayersCreate 3-D residual network
isequalCheck equality of deep learning layer graphs or networks
isequalnCheck equality of deep learning layer graphs or networks ignoring NaN values
classifyClassify data using trained deep learning neural network
predictPredict responses using trained deep learning neural network
activationsCompute deep learning network layer activations
confusionchartCreate confusion matrix chart for classification problem
sortClassesSort classes of confusion matrix chart


expand all

PredictPredict responses using a trained deep learning neural network
Image ClassifierClassify data using a trained deep learning neural network


ConfusionMatrixChart PropertiesConfusion matrix chart appearance and behavior

Examples and How To

Use Pretrained Networks

Create New Deep Network