tf.Keras中Sequential模型Dropout层作用对象的疑问咨询
Keras Sequential模型中Dropout层的作用对象澄清
在你的Sequential模型里,层的执行顺序完全按照add()的调用顺序来,Dropout作为独立层,只作用于它前面紧邻的那一层的输出,和后续层无关:
- 第一个
Dropout(0.2):接收前面第一个Dense(60)隐藏层的输出,对这些输出对应的神经元执行随机丢弃(丢弃概率0.2),处理后的结果再传入下一个Dense(30)层。 - 第二个
Dropout(0.2):接收前面第二个Dense(30)隐藏层的输出,执行同样的随机丢弃操作,处理后的结果再传入最后的Dense(1)输出层。
你完全不用担心第二个Dropout会作用于输出层——输出层的输入是经过Dropout处理后的第二个隐藏层输出,Dropout并没有对输出层的神经元做任何操作,这种设置完全符合正则化的合理逻辑(仅在隐藏层后添加Dropout,避免输出层的关键预测信息丢失)。
简单来说,Sequential模型里的层是“流水线”式的执行逻辑:每一层的输入都是前一层的输出,Dropout层就插在目标层的输出之后,对该输出做正则化处理,再传递给下一层。
内容的提问来源于stack exchange,提问作者Ahmed Mohamed
相关产品推荐
相关产品推荐

