Can Keras能否在列车和测试/验证阶段自动识别Drop和BatchNorm?

时间:2017-09-24 22:34:04

标签: keras

我一直是Tensorflow用户,在tensorflow中,我必须明确地处理Drop和BatchNorm。例如,在测试/验证阶段,Drop率必须设置为1,并指定BatchNorm的训练标志。

我的问题是:Keras能否在列车和测试/验证阶段自动识别Drop和BatchNorm?例如,如果我使用model.predict(),Keras会知道我在test / validate的pjhase中,所以它会自动处理Drop和BatchNorm吗?

B.T.W。,在验证/测试阶段,Keras会将Dropout的速率设置为0,这与Tensorflow中的情况形成鲜明对比。在Tensorflow中,丢弃率将设置为1。

1 个答案:

答案 0 :(得分:4)

是的,Keras已经在内部跟踪学习/测试阶段,它是通过一个名为learning_phase的内部变量来实现的,该变量在测试时设置为零,在训练时设置为一个。

您可以将此变量与keras.backend函数learning_phase()set_learning_phase(value) fully documented进行互动。