Main Content

dropoutLayer

Dropout layer

Description

A dropout layer randomly sets input elements to zero with a given probability.

Creation

Description

layer= dropoutLayercreates a dropout layer.

layer= dropoutLayer(probability)creates a dropout layer and sets theProbabilityproperty.

example

layer= dropoutLayer(___,'Name',Name)sets the optionalNameproperty using a name-value pair and any of the arguments in the previous syntaxes. For example,dropoutLayer(0.4,'Name','drop1')creates a dropout layer with dropout probability 0.4 and name'drop1'. Enclose the property name in single quotes.

Properties

expand all

Dropout

Probability for dropping out input elements, specified as a nonnegative number less than 1.

At training time, the layer randomly sets input elements to zero given by the dropout maskrand(size(X)), whereXis the layer input and then scales the remaining elements by1/(1-Probability). This operation effectively changes the underlying network architecture between iterations and helps prevent the network from overfitting[1],[2]. A higher number results in more elements being dropped during training. At prediction time, the output of the layer is equal to its input.

For image input, the layer applies a different mask for each channel of each image. For sequence input, the layer applies a different dropout mask for each time step of each sequence.

Example:0.4

Layer

Layer name, specified as a character vector or a string scalar. ForLayerarray input, thetrainNetwork,assembleNetwork,layerGraph, anddlnetworkfunctions automatically assign names to layers withNameset to''.

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. This layer has a single output only.

Data Types:double

这个属性是只读的。

Output names of the layer. This layer has a single output only.

Data Types:cell

Examples

collapse all

Create a dropout layer with name'drop1'.

layer = dropoutLayer('Name','drop1')
layer = DropoutLayer with properties: Name: 'drop1' Hyperparameters Probability: 0.5000

Include a dropout layer in aLayerarray.

layers = [...imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer dropoutLayer 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 '' Dropout 50% dropout 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax 7 '' Classification Output crossentropyex

More About

expand all

References

[1] Srivastava, N., G. Hinton, A. Krizhevsky, I. Sutskever, R. Salakhutdinov. "Dropout: A Simple Way to Prevent Neural Networks from Overfitting."Journal of Machine Learning Research. Vol. 15, pp. 1929-1958, 2014.

[2] Krizhevsky, A., I. Sutskever, and G. E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks."Advances in Neural Information Processing Systems. Vol. 25, 2012.

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™.

Introduced in R2016a