【发布时间】:2017-04-27 09:57:10
【问题描述】:
我使用 Keras 编写了一个神经网络。它包含 BatchNormalization 层。
当我用model.fit 训练它时,一切都很好。当用 tensorflow as explained here 训练它时,训练很好,但是验证步骤总是给出很差的性能,并且很快就饱和(准确度达到 5%、10%、40%、40%、40% ......;损失也停滞不前)。
我需要使用 tensorflow,因为它在训练的监控部分提供了更大的灵活性。
我强烈怀疑这与 BN 层或/和我计算测试性能的方式有关(见下文)
feed_dict = {x: X_valid,
batch_size_placeholder: X_valid.shape[0],
K.learning_phase(): 0,
beta: self.warm_up_schedule(global_step)
}
if self.weights is not None:
feed_dict[weights] = self.weights
acc = accuracy.eval(feed_dict=feed_dict)
在计算包含 Keras BatchNormalizatin 层的模型的验证准确性时,有什么特别的事情要做吗?
提前谢谢你!
【问题讨论】:
标签: tensorflow keras keras-layer