Main Content

Stateful Classify

Classify data using a trained deep learning recurrent neural network

Since R2021a

  • Stateful Classify block

Libraries:
Deep Learning Toolbox / Deep Neural Networks

Description

The Stateful Classify block predicts class labels for the data at the input by using the trained recurrent neural network specified through the block parameter. This block allows loading of a pretrained network into the Simulink® model from a MAT-file or from a MATLAB® function. This block updates the state of the network with every prediction.

To reset the state of recurrent neural network to its initial state, place the Stateful Classify block inside a Resettable Subsystem (Simulink) block and use the Reset control signal as trigger.

Examples

Limitations

  • CPU acceleration using the Intel® MKL-DNN library and GPU acceleration using the NVIDIA® CuDNN or TensorRT libraries are not supported for Stateful Classify blocks that use a dlnetwork object.

  • The Stateful Classify block does not support MAT-file logging.

Ports

Input

expand all

The format of the input depend on the type of data.

InputDescription
Vector sequencess-by-c matrices, where s is the sequence length, and c is the number of features of the sequences.
2-D image sequencesh-by-w-by-c-by-s arrays, where h, w, and c correspond to the height, width, and number of channels of the images, respectively, and s is the sequence length.

Output

expand all

Predicted class labels with the highest score, returned as a N-by-1 enumerated vector of labels, where N is the number of observations.

Predicted scores, returned as a K-by-N matrix, where K is the number of classes, and N is the number of observations.

Labels associated with the predicted scores, returned as a N-by-K matrix, where N is the number of observations, and K is the number of classes.

Parameters

expand all

Specify the source for the trained recurrent neural network. The trained network must have at least one recurrent layer (for example, an LSTM network). Select one of the following:

  • Network from MAT-file— Import a trained recurrent neural network from a MAT-file containing a dlnetwork object.

  • Network from MATLAB function— Import a pretrained recurrent neural network from a MATLAB function.

Programmatic Use

Block Parameter: Network
Type: character vector, string
Values: 'Network from MAT-file' | 'Network from MATLAB function'
Default: 'Network from MAT-file'

This parameter specifies the name of the MAT-file that contains the trained recurrent neural network to load. If the file is not on the MATLAB path, use the Browse button to locate the file.

Dependencies

To enable this parameter, set the Network parameter to Network from MAT-file.

Programmatic Use

Block Parameter: NetworkFilePath
Type: character vector, string
Values: MAT-file path or name
Default: 'untitled.mat'

This parameter specifies the name of the MATLAB function for the pretrained recurrent neural network.

Dependencies

To enable this parameter, set the Network parameter to Network from MATLAB function.

Programmatic Use

Block Parameter: NetworkFunction
Type: character vector, string
Values: MATLAB function name
Default: 'untitled'

The Sample time parameter specifies when the block computes a new output value during simulation. For details, see Specify Sample Time (Simulink).

Specify the Sample time parameter as a scalar when you do not want the output to have a time offset. To add a time offset to the output, specify the Sample time parameter as a 1-by-2 vector where the first element is the sampling period and the second element is the offset.

By default, the Sample time parameter value is -1 to inherit the value.

Programmatic Use

Block Parameter: SampleTime
Type: character vector
Values: scalar | vector
Default: '-1'

Enable output port ypred that outputs the label with the highest score.

Programmatic Use

Block Parameter: Classification
Type: character vector, string
Values: 'off' | 'on'
Default: 'on'

Enable output ports scores and labels that output all predicted scores and associated class labels.

Programmatic Use

Block Parameter: Predictions
Type: character vector, string
Values: 'off' | 'on'
Default: 'off'

This parameter specifies the input data format expected by the trained dlnetwork.

Data format, specified as a string scalar or a character vector. Each character in the string must be one of these dimension labels:

  • "S" — Spatial

  • "C" — Channel

  • "B" — Batch

  • "T" — Time

  • "U" — Unspecified

For example, for an array containing a batch of sequences where the first, second, and third dimension correspond to channels, observations, and time steps, respectively, you can specify that it has the format "CBT".

You can specify multiple dimensions labeled "S" or "U". You can use the labels "C", "B", and "T" once each, at most. The software ignores singleton trailing "U" dimensions after the second dimension.

For more information, see Deep Learning Data Formats.

By default, the parameter uses the data format that the network expects.

Dependencies

To enable this parameter, set the Network parameter to Network from MAT-file to import a trained dlnetwork object from a MAT-file.

Programmatic Use

Block Parameter: InputDataFormats
Type: character vector, string
Values: For a network with one or more inputs, use character vector in the form of: {'inputlayerName1', 'SSC'; 'inputlayerName2', 'SSCB'; ...}'. For a network with no input layer and multiple input ports, use character vector in the form of: '{'inputportName1/inport1, 'SSC'; 'inputportName2/inport2, 'SSCB'; ...}'.
Default: Data format that the network expects. For more information, see Deep Learning Data Formats.

Variable containing class names, specified as a categorical vector, a string array, or a cell array of character vectors.

The output size of the network must match the number of classes.

Dependencies

To enable this parameter, set the Network parameter to Network from MAT-file to import a trained dlnetwork object from a MAT-file.

Programmatic Use

Block Parameter: classNames
Type:variable name of a categorical vector, a string array, or a cell array of character vectors.
Values: Name of a variable containing class names, specified as a categorical vector, a string array, or a cell array of character vectors.
Default: The workspace variable classNames.

Extended Capabilities

Version History

Introduced in R2021a

expand all