你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
辍学
Dropout 函数。
Dropout (x)
parameters
x
:将 dropout 函数应用到的输入
注意:删除率不是此函数的参数,而是在 SGD
节中指定的。
返回值
Dropout()
将返回应用于输入的退出操作的结果。
结果具有与输入相同的张量维度。
说明
该 Dropout()
操作随机选择具有给定概率的输入元素,称为 退出率,并将其设置为 0。
已显示这一点,以提高模型的通用性。
在CNTK实现中,未设置为 0 的剩余值将与 (1 / (1 - dropout rate) ) 相乘。 这样,通过下拉列表学习的模型参数直接适用推理。 (如果未执行此操作,则用户在推理.) 之前必须手动缩放它们
若要在训练中启用 dropout,还需要将参数 dropoutRate
添加到 SGD
节中以定义退出率。
这在节中 SGD
完成,而不是自带参数 Dropout()
,以便无需退出即可开始训练,然后在几个时期之后启用它,这是一种常见方案。
为此,指定 dropoutRate
为向量,其中每个值用于特定纪元。
运行推理时,该 Dropout()
操作会传递其输入未修改 (它是无操作) 。
示例
下面是一个简单的卷积网络,其中放置层位于末尾:
features = Input{...}
c = ConvolutionalLayer {32, (5:5), activation=ReLU} (features)
p = MaxPoolingLayer {(3:3), stride = (2:2)} (c)
h = DenseLayer {64, activation = ReLU} (p)
d = Dropout (h)
z = LinearLayer {10} (d)
此外,还需要该 SGD
部分中的相应条目。
以下示例定义对前 3 个纪元不使用 dropout,然后继续执行 50% 的下降率。
为方便起见,此示例使用星号 (*
) 语法来表示重复:
SGD = {
...
dropoutRate = 0*3:0.5
...
}