如何在Keras中获取历史回调指标?

斯卡拉男孩

如何检索回调指标的历史记录?我有一个类,Metrics并在fitKeras模型功能中使用它,如下所示callbacks=[model_metrics]

这是该类Metricsfit函数的完整代码

class Metrics(Callback):

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

    def on_epoch_end(self, epoch, logs={}):
        val_predict = np.argmax((np.asarray(self.model.predict(self.validation_data[0]))).round(), axis=1)
        val_targ = np.argmax(self.validation_data[1], axis=1)
        _val_f1 = metrics.f1_score(val_targ, val_predict, average='weighted')
        _val_bal_acc = metrics.balanced_accuracy_score(val_targ, val_predict)    
        self.val_f1s.append(_val_f1)
        self.val_bal_accs.append(_val_bal_acc)
        print(" — val_f1: {:f} — val_bal_acc: {:f}".format(_val_f1, _val_bal_acc))
        return

model_metrics = Metrics()

history = model.fit(np.array(X_train), y_train, 
                    validation_data=(np.array(X_test), y_test),
                    epochs=5,
                    batch_size=2,
                    callbacks=[model_metrics],
                    shuffle=False,
                    verbose=1)

我怎样才能获得historyval_f1val_bal_acc现在我只能访问lossval_lossaccval_acc

print(history.history.keys())
报春花

要与互动keras历史API,你需要在参数传递metrics,而不是callbacks

在当前状态下,您的val_f1val_bal_acc不会存储在历史记录对象中,而是会存储在您的model_metrics对象中。

您可以像这样访问它们:

model_metrics.val_f1s

这与访问任何对象的属性相同。

最后,如果您确实想创建自定义指标并希望从历史记录中访问它,则需要定义一个自定义指标(作为函数),然后将其传递到中的metricskwarg中model.compile这样做是这样的:

def my_metric(y_true y_pred):
    return y_true # just a dummy return value

# assume that the model is defined somewhere
model.compile(loss=..., optimizer=..., metrics = [my_metric]

然后,您将能够val_my_metric在历史对象中找到不合适的对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Tensorboard中可视化指标回调?

如何在回调中获取实例

如何在从自定义回调获取的指标上使用tf.summary.scalar()生成的Tensorboard中的单个图形而不是2中绘制数据?

如何在响应回调中获取原始请求URL?

如何在ActiveJob回调方法中获取Job属性?

如何在DialogFragment中获取权限结果回调?

如何在具有多个回调的函数中获取最后一个回调?

如何从历史中访问指标

如何从库中获取对ViewModel的回调

如何在 Keras 中调用方法作为自定义回调?

如何在ajax函数中回调`this`

如何在回调中调用 useDispatch

如何在回调中访问正确的“ this”?

如何在JS中回调函数

如何在PHP中实现回调?

如何在Android中定义回调?

如何在课程中列出回调

如何在Promise中执行回调?

如何在Java中的回调中获取调用者对象?

如何在Matlab中从处理程序回调中获取输出变量

如何在keras中实现自定义指标?

如何在Keras中创建返回多维值的指标?

如何在Tcl_TraceVar回调中获取Tcl变量的先前值?

如何在Cypress中获取多个别名的值而不引入回调地狱?

如何在Celery link_error回调中获取“完整”异步结果

如何在jquery回调函数中获取当前对象引用?

如何在不使用全局变量的情况下从回调中获取数据?

如何在Objective-C的奖励视频AdMob回调中获取广告单元ID

Python Tkinter:如何在<Destroy>事件回调中从ScrolledText小部件获取文本?