Specify Layers of Convolutional Neural Network
You can build and customize a deep learning model in various ways—for example, you can import and adapt a pretrained model, build a network from scratch, or define a deep learning model as a function.
In most cases, you can specify many types of deep learning models as a neural network of
layers and then train it using the trainnet
function. For a list of layers and how to create them, see List of Deep Learning Layers.
For simple neural networks with layers connected in series, you can specify the architecture as an array of layers. For example, to create a neural network that classifies 28-by-28 grayscale images into 10 classes, you can specify the layer array:
layers = [ imageInputLayer([28 28 1]) convolution2dLayer(5,20) batchNormalizationLayer reluLayer fullyConnectedLayer(10) softmaxLayer];
For neural networks with more complex structure, for example neural networks with
branching, you can specify the neural network as a dlnetwork
object. You can add and connect layers using the addLayers
and
connectLayers
functions, respectively. For example, to create a multi-input network that classifies pairs
of 224-by-224 RGB and 64-by-64 grayscale images into 10 classes, you can specify the neural
network:
net = dlnetwork; layers = [ imageInputLayer([224 224 3]) convolution2dLayer(5,128) batchNormalizationLayer reluLayer flattenLayer concatenationLayer(1,2,Name="cat") fullyConnectedLayer(10) softmaxLayer]; net = addLayers(net,layers); layers = [ imageInputLayer([64 64 1]) convolution2dLayer(5,128) batchNormalizationLayer reluLayer flattenLayer(Name="flatten2")]; net = addLayers(net,layers); net = connectLayers(net,"flatten2","cat/in2");
figure plot(net)
For models that cannot be specified as networks of layers, you can define the model as a function. For an example showing how to train a deep learning model defined as a function, see Train Network Using Model Function.
See Also
trainnet
| trainingOptions
| dlnetwork