Contenu principal

Concatenation Layer

R2026b

Concatenation layer

Since R2024b

  • Concatenation Layer block

Libraries:
Deep Learning Toolbox / Deep Learning Layers / Combination Layers

Description

The Concatenation Layer block takes inputs and concatenates them along a specified dimension. The inputs must have the same size in all dimensions except the concatenation dimension. This block accepts data that has dimensions corresponding to the format that you specify with the Data format block parameter.

The exportNetworkToSimulink function generates this block to represent a concatenationLayer object.

Examples

expand all

Export a trained neural network to Simulink® as layer blocks.

For most workflows, you do not need to create neural networks in Simulink. Instead, import or train a neural network in MATLAB® and export it to Simulink.

Suppose that you have a trained neural network net specified as a dlnetwork object. Export the network to Simulink using the exportNetworkToSimulink function.

mdlInfo = exportNetworkToSimulink(net)

Neural network as subsystem in Simulink. The subsystem has the name "my_model". It has one input with the name "data" and one output with the name "prob_flatten_out".

The exported Simulink model represents the neural network as a subsystem. To view the layer blocks, open the subsystem. This example shows the first few blocks of a neural network.

Neural network as layer blocks in Simulink. The subsystem has one input with the name data. The data input is connected to four layer blocks in series. The layer blocks in order are Zerocenter 2D, Convolution 2D, ReLU, and Max Pooling 2D layer blocks. There are more blocks in the model which have been cropped from the screenshot.

To view and edit the layer block parameters, open the corresponding layer block mask. This example shows the parameters for the ReLU block.

Block Parameters dialog for the ReLU block.

Using the layer block parameters, you can configure aspects like data types and execution options like sample times.

Ports

Input

expand all

First input to concatenate, provided as an array that follows the format that you specify with the Data format parameter.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Second input to concatenate, provided as an array that follows the format that you specify with the Data format parameter.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Nth input to concatenate, provided as an array that follows the format that you specify with the Data format parameter. The block has a number of input ports equal to the value of the NumInputs property of the object that you specify with the Layer parameter.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Output

expand all

Concatenated output data. The output data has dimensions corresponding to the format that you specify with the Data format block parameter.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

Main

Specify the name of a workspace variable that contains a concatenationLayer object from a trained network. The Concatenation Layer block configures itself by using the properties of the object.

Programmatic Use

Block Parameter: Layer
Type: workspace variable
Values: concatenationLayer object
Default: 'layerObject'

Data format for the input data. The options use the same notation as the fmt argument of the dlarray object, except layer blocks do not support the Batch (B) dimension and instead assume an observation number of 1.

Programmatic Use

Block Parameter: DataFormat
Type: character vector
Values: 'SSC' | 'C' | 'CT' | 'SC' | 'SSSC'
Default: 'SSC'

Execution

Specify the discrete interval between sample time hits or specify another type of sample time, such as continuous (0) or inherited (-1). For more options, see Types of Sample Time (Simulink).

By default, the block inherits its sample time based on the context of the block within the model.

Programmatic Use

To set the block parameter value programmatically, use the set_param (Simulink) function.

Parameter: SampleTime
Data Types: char
Values: '-1' | scalar
Default: '-1'

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2024b

expand all