additionLayer
Addition layer
Description
An addition layer adds inputs from multiple neural network layers element-wise.
Specify the number of inputs to the layer when you create it. The inputs to the layer
have the names 'in1','in2',...,'inN'
, where N
is
the number of inputs. Use the input names when connecting or disconnecting the layer by
using connectLayers
or disconnectLayers
. All inputs to an addition layer must have the same
dimension.
Creation
Properties
Number of inputs to the layer, specified as a positive integer greater than or equal to 2.
The inputs have the names 'in1','in2',...,'inN'
, where N
is
NumInputs
. For example, if NumInputs
is 3,
then the inputs have the names 'in1','in2'
, and 'in3'
. Use the input names when
connecting or disconnecting the layer using the connectLayers
or disconnectLayers
functions.
Input names, specified as {'in1','in2',...,'inN'}
, where N
is the number of inputs of the layer.
Data Types: cell
This property is read-only.
Number of outputs from the layer, stored as 1
. This layer has a
single output only.
Data Types: double
This property is read-only.
Output names, stored as {'out'}
. This layer has a single output
only.
Data Types: cell
Examples
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.
plot(net)
Algorithms
Layers in a layer array or neural network pass data to subsequent
layers as formatted dlarray
objects. The format of a dlarray
object is a string of characters, in which each character describes the
corresponding dimension of the data. The formats consists of one or more
of these characters:
"S"
— Spatial"C"
— Channel"B"
— Batch"T"
— Time"U"
— Unspecified
For example, 2-D image data represented as a 4-D array, where the first
two dimensions correspond to the spatial dimensions of the images, the third
dimension corresponds to the channels of the images, and the fourth
dimension corresponds to the batch dimension, can be described as having the
format "SSCB"
(spatial, spatial, channel, batch).
You can interact with these dlarray
objects in
automatic differentiation workflows, such as those for developing a
custom layer, using a functionLayer
object, or using the forward
and
predict
functions with dlnetwork
objects.
This table shows the supported input formats of
AdditionLayer
objects and the corresponding output
format. If the software passes the output of the layer to a custom layer
that does not inherit from the nnet.layer.Formattable
class, or a FunctionLayer
object with the
Formattable
property set to 0
(false
), then the layer receives an unformatted
dlarray
object with dimensions ordered according to the
formats in this table. The formats listed here are only a subset. The layer
may support additional formats such as formats with additional
"S"
(spatial) or "U"
(unspecified)
dimensions.
Input Format | Output Format |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If several input formats contain the same label, then the corresponding data for
each input must be a singleton or the same size as the nonsingleton data for the
other inputs. If an input format contains multiple U or S labels,
additionLayer
matches each label to the labels in the other
input formats by their order of appearance.
In dlnetwork
objects, AdditionLayer
objects also
support these input and output format combinations.
Input Format | Output Format |
---|---|
|
|
|
|
|
|
|
|
AdditionLayer
objects support complex-valued input
and outputs. (since R2024a) The layer applies the same underlying operation to complex-valued
input as it does to real-valued input and outputs complex-valued data where
applicable.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.
Version History
Introduced in R2017bAdditionLayer
objects support complex-valued input and outputs. The layer applies the same underlying operation to complex-valued input as it does to real-valued input and outputs complex-valued data where applicable.
See Also
trainnet
| trainingOptions
| dlnetwork
| depthConcatenationLayer
| exportNetworkToSimulink
| Addition Layer
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)