如何使用keras在CNN中同时获得最佳val_acc和val_loss?

时间:2018-11-12 14:23:34

标签: keras

我已经使用ModelCheckpoint(file_path, monitor='val_acc', verbose=1, save_best_only=True, mode='max')来获取最大val_acc。因此,当我运行程序时,会得到许多示例,例如:

  1. val_acc = 0.92857&val_loss = 0.2495,
  2. val_acc = 0.98750&val_loss = 0.6820。

因此,尽管val_loss很大,但它需要2个编号。 我该如何选择不。 1的val_loss较低? 另外,如何在考虑val_acc和val_loss值的情况下选择最佳拟合模型?

1 个答案:

答案 0 :(得分:0)

您实际上应该将其中一个作为检查点。但是,您可以只创建两个回调并根据这两个指标保存网络。

call_acc = ModelCheckpoint(weights.{epoch:02d}-{val_acc:.2f}.hdf5, monitor='val_acc', save_best_only=True, mode='max')
call_loss = ModelCheckpoint(weights.{epoch:02d}-{val_loss:.2f}.hdf5, monitor='val_loss', save_best_only=True, mode='min')
model.fit(X, Y, epochs, batch_siz, callbacks=[call_loss, call_acc])