首页 > 解决方案 > 有人可以帮助解释 keras.backend.learning_phase_scope(1) 的使用吗?

问题描述

需要帮助,因为我是 Keras 的新手,并且正在阅读有关 dropout 以及在训练和验证阶段使用 dropout 如何对损失计算产生影响的内容。这是因为 dropout 仅出现在训练时而不是验证时,因此比较两个损失可能会产生误导。

问题是

  1. learning_phase_scope(1)的使用
  2. 它如何影响验证
  3. 使用 dropout 时要采取哪些步骤来纠正测试损失?

标签: kerastf.keras

解决方案


它不仅需要更改,Dropout而且BatchNormalization还需要更改,否则会影响验证性能。

如果您使用 keras 并且只想获得验证损失(和/或准确性或其他指标),那么您最好使用model.evaluate()或添加validation_datawhilemodel.fit而不要对learning_phase_scope.

表示它learning_phase_scope(1)用于训练,0 用于预测/验证。

就我个人而言,我learning_phase_scope只在我想训练一些不以简单结尾的东西model.fit(可视化 CNN 过滤器)但在过去 3 年中只使用一次的时候使用。


推荐阅读