Image Classifier - Classify data using a trained deep learning neural network - Simulink (original) (raw)

Classify data using a trained deep learning neural network

Since R2020b

Description

The Image Classifier block predicts class labels for the data at the input by using the trained 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.

Examples

Limitations

Ports

Input

expand all

image — Image or feature data

numeric array

A_h_-by-_w_-by-c_-by-N numeric array, where h, w, and_c are the height, width, and number of channels of the images, respectively, and N is the number of images.

A N_-by-numFeatures numeric array, where_N is the number of observations andnumFeatures is the number of features of the input data.

If the array contains NaNs, then they are propagated through the network.

Output

expand all

ypred — Predicted class labels

enumerated

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

scores — Predicted class scores

matrix

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

labels — Class labels for predicted scores

matrix

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

Network — Source for trained network

Network from MAT-file (default) | Network from MATLAB function

Specify the source for the trained network. Select one of the following:

Programmatic Use

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

File path — MAT-file containing trained network

untitled.mat (default) | MAT-file path or name

This parameter specifies the name of the MAT-file that contains the trained deep learning 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'

MATLAB function — MATLAB function name

squeezenet (default) | MATLAB function name

This parameter specifies the name of the MATLAB function for the pretrained deep learning network. For example, to use a pretrained GoogLeNet, create a functionpretrainedGoogLeNet in a MATLAB M-file, and then import this function.

function net = pretrainedGoogLeNet net = imagePretrainedNetwork("googlenet"); end

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: 'squeezenet'

Mini-batch size — Size of mini-batches

128 (default) | positive integer

Size of mini-batches to use for prediction, specified as a positive integer. Larger mini-batch sizes require more memory, but can lead to faster predictions.

Programmatic Use

Block Parameter: MiniBatchSize
Type: character vector, string
Values: positive integer
Default: '128'

Resize input — Resize input dimensions

on (default) | off

Resize the data at the input port to the input size of the network.

Programmatic Use

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

Classification — Output predicted label with highest score

on (default) | off

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'

Predictions — Output all scores and associated labels

off (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'

Class names workspace variable — Workspace variable containing class names of the network output

classNames (default) | categorical vector variable | string array variable | cell array of character vectors variable name

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 toNetwork 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 variableclassNames.

Tips

Extended Capabilities

C/C++ Code Generation

Generate C and C++ code using Simulink® Coder™.

Usage notes and limitations:

GPU Code Generation

Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Usage notes and limitations:

Version History

Introduced in R2020b

expand all

Starting in R2024a, the SeriesNetwork and DAGNetwork objects are not recommended. This recommendation means that SeriesNetwork and DAGNetwork inputs to the Image Classifier block are not recommended. Use the dlnetwork objects instead.dlnetwork objects have these advantages:

Simulink block models with dlnetwork objects behave differently. The predicted scores are returned as a _K_-by-N matrix, where K is the number of classes, and N is the number of observations. If you have an existing Simulink block model with a SeriesNetwork orDAGNetwork object, follow these steps to use a dlnetwork object instead:

  1. Convert the SeriesNetwork or DAGNetwork object to a dlnetwork using the dag2dlnetwork function.
  2. Define a workspace variable containing class names of the network output corresponding to the block parameter Class names workspace variable.
  3. Transpose the predicted scores using a transpose block to an_N_-by-K array, where N is the number of observations, and K is the number of classes.