# dropoutLayer


随机丢弃层

函数库: TyDeepLearning

# 语法

layer = dropoutLayer(probability=0.5)

# 说明

layer = dropoutLayer(probability=0.5) 创建一个随机丢弃层。示例

Dropout是一种正则化手段,该算子根据丢弃概率 probability ,在训练过程中随机将一些神经元输出设置为 0,通过阻止神经元节点间的相关性来减少过拟合,在推理过程中,此层返回与 x 相同的数组。

# 示例

创建随机丢弃层

创建一个维度为(2,2,3)、元素均为 1 的数组。

using TyDeepLearning
set_backend(:mindspore)
array = ones(Float32, (2, 2, 3))

创建一个随机丢弃层,输入神经元丢弃率为 0.2。 使用该层处理数组并输出数组维度。

layer = dropoutLayer(0.2)
print(size(TyDeepLearning.predict(layer, array)))
(2, 2, 3)

随机生成一个维度为(1,1,28,28)的数组。

input = rand(Float32, (1, 1, 28, 28))

创建一个包含随机丢弃层的神经网络。随机生成一个维度为(1,1,28,28)的数组,使用该神经网络处理数组并输出结果维度。

layers = SequentialCell([
    convolution2dLayer(1, 20, 5),
    reluLayer(),
    dropoutLayer(0.5),
    flattenLayer(),
    fullyConnectedLayer(20 * 28 * 28, 10),
    softmaxLayer()
])
print(size(TyDeepLearning.predict(layers, input)))
(1, 10)

# 输入参数

probability-神经元丢弃率
标量

输入神经元丢弃率,数值范围在 0 到 1 之间。例如,rate = 0.1,删除 10% 的神经元。默认值:0.5。

数据类型: Float16 | Float32 | Float64

# 输出参数

layer-丢弃层
网络对象

输出为一个丢弃层

# 另请参阅

predict | Improving neural networks by preventing co-adaptation of feature detectors (opens new window)