# 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)