根据Keras文档,辍学图层显示了培训和测试阶段的不同行为:
请注意,如果您的模型在培训中有不同的行为, 测试阶段(例如,如果它使用Dropout,BatchNormalization等),你 需要将学习阶段标志传递给您的函数:
不幸的是,没有人谈论实际的差异。为什么辍学在测试阶段表现不同?我希望该层将一定数量的神经元设置为0.为什么这种行为取决于训练/测试阶段?
答案 0 :(得分:6)
在训练阶段使用辍学来减少过度拟合的可能性。如你所述,这个层会停用某些神经元。该模型将对其他节点的权重更加不敏感。基本上对于辍学层,训练的模型将是许多稀疏模型的平均值。查看更详细的说明here
但是,在应用训练模型时,您希望使用模型的全部功能。您希望使用训练(平均)网络中的所有神经元来获得最高精度。