在Keras中,每个时期末的验证准确性是通过取所有批次的平均值来计算的。但是,我希望此计算将整个验证数据考虑在内。我该怎么办?
答案 0 :(得分:0)
是可以的,为此,您需要使用最近添加到Keras的类:keras.metrics.Metric
。有了它,您可以实现有状态的指标,并在批处理中累积结果(甚至自己累积每个批处理结果),然后计算最终结果。
为此,您需要继承keras.metrics.Metric
并实现以下方法:
update_state
:更新度量标准状态,这里您基本上可以累积每批结果。您可以使用self.add_weight
获取可更新的变量,如果使用其他方法定义状态,则还必须实现reset_states
。result
:根据每个批次的结果计算并返回最终指标。然后,您创建指标的一个实例并将其传递给model.compile
。使用此框架here实现的指标有很多示例。