你当前正在访问 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
    ...
}