Keras的回调Evaluation_generator

时间:2018-07-31 10:44:05

标签: python tensorflow keras deep-learning

我正在使用Keras进行一项实验。当我使用fit_generator方法时,我可以指定回调,以便在每次批处理或每个纪元之后实现。

现在,在使用评价引擎生成器进行验证时,我会执行以下操作,

其他一些指标如下所示,

def accuracy(y_true, y_pred):
    return K.mean(K.equal(y_true, K.round(y_pred)))

评估

metrics = model.evaluate_generator(my_generator(...),
                          steps=steps,
                          use_multiprocessing=True)

这里,my_generator() yield是一个输入(此处的批处理大小为1)。此外,我在模型中定义了多种类型的损失。我完全可以弥补所有损失。

但是问题是,我只有一个评估指标。我认为这是将所有单个批次作为一个整体输入的总体指标。

如何定义回调或类似的东西,以便可以对单个批处理求值进行自己的计算?(如fit_generator回调)。

注意: evaluate_generator does not支持回调。

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找lambda回调 https://keras.io/callbacks/#lambdacallback

也可以使用完整的自定义回调。 来自keras文档的示例:

class LossHistory(keras.callbacks.Callback):
    def on_train_begin(self, logs={}):
        self.losses = []

    def on_batch_end(self, batch, logs={}):
        self.losses.append(logs.get('loss'))