tf 中的辍学实现.凯拉斯



考虑以下模型:

model = Sequential()
model.add(Dense(60, input_shape=(60,), activation='relu', kernel_constraint=MaxNorm(3)))
model.add(Dropout(0.2))
model.add(Dense(30, activation='relu', kernel_constraint=MaxNorm(3)))
model.add(Dropout(0.2))
model.add(Dense(1, activation='sigmoid'))

我理解 Dropout 背后的正则化想法。根据我的理解,Dropout 是按层应用的,速率p决定了神经元被丢弃的概率。在上面的例子中,我无法理解第一个dropout层是应用于第一个隐藏层还是第二个隐藏层。因为正如我之前提到的,dropout 是按层应用的,这里让我感到困惑的是 Keras 将 dropout 作为一个单独的层来处理。此外,如果将第一个辍学层应用于第二个隐藏层,那么第二个辍学层呢?它是否应用于输出层(将 dropout 应用于输出神经元根本无效)?那么请问有人可以澄清这些要点吗?

根据 keras 中的文档:

将 Dropout 应用于输入。

因此,丢弃的输入层的概率为p。在您的情况下,它意味着第一层。在您的示例中,来自第一层的 60 个神经元中的 20% 将被丢弃。

此外,如果 dropout 在接替它的层上工作,这也是没有意义的,因为这样您将从最后一层退出 - 在分类中可能是结果。

最新更新