# ClassificationOutputLayer

Classification layer

## Description

A classification layer computes the cross entropy loss for multi-class classification problems with mutually exclusive classes.

## Creation

Create a classification layer using `classificationLayer`.

## Properties

expand all

### Classification Output

Classes of the output layer, specified as a categorical vector, string array, cell array of character vectors, or `'auto'`. If `Classes` is `'auto'`, then the software automatically sets the classes at training time. If you specify the string array or cell array of character vectors `str`, then the software sets the classes of the output layer to `categorical(str,str)`. The default value is `'auto'`.

Data Types: `char` | `categorical` | `string` | `cell`

Size of the output, specified as a positive integer. This value is the number of labels in the data. Before the training, the output size is set to `'auto'`.

Loss function for training, specified as `'crossentropyex'`, which stands for Cross Entropy Function for k Mutually Exclusive Classes.

### Layer

Layer name, specified as a character vector or a string scalar. To include a layer in a layer graph, you must specify a nonempty unique layer name. If you train a series network with the layer and `Name` is set to `''`, then the software automatically assigns a name to the layer at training time.

Data Types: `char` | `string`

Number of inputs of the layer. This layer accepts a single input only.

Data Types: `double`

Input names of the layer. This layer accepts a single input only.

Data Types: `cell`

Number of outputs of the layer. The layer has no outputs.

Data Types: `double`

Output names of the layer. The layer has no outputs.

Data Types: `cell`

## Examples

collapse all

Create a classification layer with the name `'output'`.

`layer = classificationLayer('Name','output')`
```layer = ClassificationOutputLayer with properties: Name: 'output' Classes: 'auto' OutputSize: 'auto' Hyperparameters LossFunction: 'crossentropyex' ```

Include a classification output layer in a `Layer` array.

```layers = [ ... imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer]```
```layers = 7x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' Max Pooling 2x2 max pooling with stride [2 2] and padding [0 0 0 0] 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax 7 '' Classification Output crossentropyex ```

expand all

## Compatibility Considerations

expand all

Not recommended starting in R2018b

## References

[1] Bishop, C. M. Pattern Recognition and Machine Learning. Springer, New York, NY, 2006.

Introduced in R2016a