关于tensorflow:测试/训练阶段中Dropout层的行为

Behavior of Dropout layers in test / training phase

根据Keras文档的辍学层显示出在培训和测试阶段的不同行为:

Note that if your model has a different behavior in training and
testing phase (e.g. if it uses Dropout, BatchNormalization, etc.), you
will need to pass the learning phase flag to your function:

不幸的是,没有人谈论实际的差异。为什么辍学在测试阶段的行为会有所不同?我希望该层将一定数量的神经元设置为0。为什么这种行为取决于训练/测试阶段?


在训练阶段使用压出法以减少过拟合的机会。正如您所提到的,该层使某些神经元失活。该模型将对其他节点的权重变得更加不敏感。基本上,对于辍学层,训练后的模型将是许多精简模型的平均值。在此处查看更详细的解释

但是,当您应用训练有素的模型时,您想使用模型的全部功能。您想要使用经过训练的(平均)网络中的所有神经元来获得最高的准确性。