基于多个参数保存最佳Keras模型

时间:2018-05-22 17:46:53

标签: tensorflow keras

是否可以在Keras中使用ModelCheckpoint模块,监视器参数有多个选项?验证准确度提高时我想保存。如果两个模型具有相同的验证精度,我希望保存具有最佳训练精度的模型。这可能吗?如果没有,有没有办法可以使用调和平均值来组合两个不同的指标?

1 个答案:

答案 0 :(得分:1)

您可以使用自定义回调来执行此操作。看一下ModelCheckpoint does以及以下内容:

class MyCheckpoint(Callback):
  # __init__ etc...
  def on_epoch_end(self, epoch, logs=None):
    logs = logs or dict()
    acc = logs.get('acc')
    val_acc = logs.get('val_acc')
    # Your conditions
    if val_acc > self.best_val_acc:
      self.model.save_weights(filename)
      self.best_val_acc = val_acc
    elif val_acc == self.best_val_acc and acc > self.best_acc:
      self.model.save_weights(filename)
      self.best_acc = acc