考虑以下模式:
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,它决定了一个神经元被丢弃的概率。在上面的例子中,我无法理解第一个辍学层是应用于第一个隐藏层还是第二个隐藏层。因为正如我前面提到的,每个层都应用了辍学,而让我困惑的是,Keras将辍学作为一个单独的层来处理。另外,如果第一个辍学层被应用到第二个隐藏层,那么第二个辍学层呢?它是否应用于输出层(对于输出神经元完全无效的输出层)?请有人澄清这几点好吗?
发布于 2022-10-24 12:40:40
根据角星中的文档:
将Dropout应用于输入。
因此,删除掉的输入层的概率为p。在你的例子中,它意味着第一层。在你的例子中,来自第一层的60个神经元中有20%会被丢弃。
而且,如果删除在后续的层上工作也是没有意义的,因为这样,您将从最后一层退出--在分类中,这可能是结果。
https://stackoverflow.com/questions/74180816
复制相似问题