如何获得火车和瓦尔集的不同指标?

时间:2017-07-11 03:24:57

标签: keras

我想估算keras中列车和验证集的不同指标集。也就是说,我希望能够在验证集上估算AUC,但不能在列车集上估算AUC。 我发现有一种方法可以在我自己的回调中预测标签,但据我所知,model.compile(..., metrics=[])和{{1}}中提供的损失和指标每个验证周期都有一次评估验证集不是那么小,我想避免两次运行得分预测

有没有办法做以下之一:

  1. 请求keras仅在val set

  2. 上评估特定指标
  3. 在火车上进行评估之前,通过返回None来欺骗keras 使用任何阶段标志设置

  4. 检索验证集上的预评估概率分数 来自回调函数

  5. 或任何其他技巧?

1 个答案:

答案 0 :(得分:0)

尝试:

class CustomLossHistory(keras.callbacks.Callback):
    def __init__(self, loss, validation_set):
        self.loss = loss
        self.validation_set = validation_set # validation_set = x, y

    def on_train_begin(self, logs={}):
        self.losses = []

    def on_batch_end(self, batch, logs={}):
        current_loss_val = loss(self.validation[1], 
            self.model.predict(validation[0])
        self.losses.append(current_loss_value) 
        # You could also print it out here.

auc_callback = CustomLossHistory(sklearn.metrics.roc_auc_score, val_set)
model.fit(...., callbacks=[auc_callback])

aucs = auc_callback.losses