connectLayers - Connect layers in neural network - MATLAB (original) (raw)

Connect layers in neural network

Syntax

Description

[netUpdated](#mw%5F245cd580-91e4-4ba0-8efd-73ef7987af1d%5Fsep%5Fmw%5F5956ea1d-4747-411e-8acc-7424b78ab717) = connectLayers([net](#mw%5F245cd580-91e4-4ba0-8efd-73ef7987af1d%5Fsep%5Fmw%5F3ffb42b3-6af7-4c22-82b3-4fb0f6a399f2),[s](#d126e44960),[d](#d126e45001)) connects the source layer s to the destination layerd in the dlnetwork objectnet. The updated network, netUpdated, contains the same layers as net and includes the new connection.

example

Examples

collapse all

Create and Connect Addition Layer

Create an empty neural network dlnetwork object and add an addition layer with two inputs and the name 'add'.

net = dlnetwork; layer = additionLayer(2,'Name','add'); net = addLayers(net,layer);

Add two ReLU layers to the neural network and connect them to the addition layer. The addition layer outputs the sum of the outputs from the ReLU layers.

layer = reluLayer('Name','relu1'); net = addLayers(net,layer); net = connectLayers(net,'relu1','add/in1');

layer = reluLayer('Name','relu2'); net = addLayers(net,layer); net = connectLayers(net,'relu2','add/in2');

Visualize the updated network in a plot.

Figure contains an axes object. The axes object contains an object of type graphplot.

Create Neural Network from Scratch

Define a two-output neural network that predicts both categorical labels and numeric values given 2-D images as input.

Specify the number of classes and responses.

numClasses = 10; numResponses = 1;

Create an empty neural network.

Define the layers of the main branch of the network and the softmax output.

layers = [ imageInputLayer([28 28 1],Normalization="none")

convolution2dLayer(5,16,Padding="same")
batchNormalizationLayer
reluLayer(Name="relu_1")

convolution2dLayer(3,32,Padding="same",Stride=2)
batchNormalizationLayer
reluLayer
convolution2dLayer(3,32,Padding="same")
batchNormalizationLayer
reluLayer

additionLayer(2,Name="add")

fullyConnectedLayer(numClasses)
softmaxLayer(Name="softmax")];

net = addLayers(net,layers);

Add the skip connection.

layers = [ convolution2dLayer(1,32,Stride=2,Name="conv_skip") batchNormalizationLayer reluLayer(Name="relu_skip")];

net = addLayers(net,layers); net = connectLayers(net,"relu_1","conv_skip"); net = connectLayers(net,"relu_skip","add/in2");

Add the fully connected layer for the regression output.

layers = fullyConnectedLayer(numResponses,Name="fc_2"); net = addLayers(net,layers); net = connectLayers(net,"add","fc_2");

View the neural network in a plot.

Figure contains an axes object. The axes object contains an object of type graphplot.

Input Arguments

collapse all

net — Neural network

dlnetwork object

Neural network, specified as a dlnetwork object.

s — Connection source

string scalar | character vector

Connection source, specified as a character vector or a string scalar.

Example: "conv"

Example: "mpool/indices"

d — Connection destination

string scalar | character vector

Connection destination, specified as a string scalar or a character vector.

Example: "fc"

Example: "add/in1"

Output Arguments

collapse all

netUpdated — Updated network

dlnetwork object

Updated network, returned as an uninitialized dlnetwork object.

To initialize the learnable parameters of a dlnetwork object, use the initialize function.

The connectLayers function does not preserve quantization information. If the input network is a quantized network, then the output network does not contain quantization information.

Version History

Introduced in R2017b

expand all

Starting in R2024a, LayerGraph objects are not recommended. Usedlnetwork objects instead. This recommendation means that this syntax is not recommended forLayerGraph input:

Most functions that support LayerGraph objects also supportdlnetwork objects. This table shows some typical usages ofLayerGraph objects and how to update your code to usedlnetwork object functions instead.

Not Recommended Recommended
lgraph = layerGraph; net = dlnetwork;
lgraph = layerGraph(layers); net = dlnetwork(layers,Initialize=false);
lgraph = layerGraph(net); net = dag2dlnetwork(net);
lgraph = addLayers(lgraph,layers); net = addLayers(net,layers);
lgraph = removeLayers(lgraph,layerNames); net = removeLayers(net,layerNames);
lgraph = replaceLayer(lgraph,layerName,layers); net = replaceLayer(net,layerName,layers);
lgraph = connectLayers(lgraph,s,d); net = connectLayers(net,s,d);
lgraph = disconnectLayers(lgraph,s,d); net = disconnectLayers(net,s,d);
plot(lgraph); plot(net);

To train a neural network specified as a dlnetwork object, use the trainnet function.