辍学层在测试/训练阶段的行为

nul*_*ull 7 neural-network theano keras tensorflow keras-layer

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

请注意,如果您的模型在训练和测试阶段具有不同的行为(例如,如果它使用Dropout,BatchNormalization等),您将需要将学习阶段标志传递给您的函数:

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

Wil*_*ren 8

在训练阶段使用辍学来减少过度拟合的可能性.如你所述,这个层会停用某些神经元.该模型将对其他节点的权重更加不敏感.基本上对于辍学层,训练的模型将是许多稀疏模型的平均值.请在此处查看更详细的说明

但是,在应用训练模型时,您希望使用模型的全部功能.您希望使用训练(平均)网络中的所有神经元来获得最高精度.