我想估算keras中列车和验证集的不同指标集。也就是说,我希望能够在验证集上估算AUC,但不能在列车集上估算AUC。 我发现有一种方法可以在我自己的回调中预测标签,但据我所知,model.compile(..., metrics=[])
和{{1}}中提供的损失和指标每个验证周期都有一次评估验证集不是那么小,我想避免两次运行得分预测。
有没有办法做以下之一:
请求keras仅在val set
在火车上进行评估之前,通过返回None来欺骗keras 使用任何阶段标志设置
检索验证集上的预评估概率分数 来自回调函数
或任何其他技巧?
答案 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