系统指标与自定义指标

Updated , 去 GitHub 贡献本页面

展示关键的 Metrics

OpenBayes 默认提供了执行时的关键指标的展示,目前支持的有 CPU 以及 内存。未来将支持更多的指标。

自定义 Metrics

OpenBayes 提供一个 python 的库 openbayestool 用于在 python 程序中自定义记录一些关键的 metrics 并展示到用户的容器执行页面之上:

openbayestool 使用方式如下所示:

from openbayestool import log_param, log_metric

# 记录参数 `learning_rate=0.01`
log_param('learning_rate', 0.01)

# 同一参数将会记录最后一个请求的结果 `foo=3`
log_param('foo', 1)
log_param('foo', 2)
log_param('foo', 3)

# 记录模型的运行结果 `precision=0.77`
log_metric('precision', 0.77)

# 同一个结果 precision 多次记录会追加结果,即结果为 [0.79, 0.82, 0.86]
log_metric('precision', 0.79)
log_metric('precision', 0.82)
log_metric('precision', 0.86)

和 Keras 结合

Keras 框架提供了 Callback API 可以创建按照 batch 或者 epoch 级别的更新回调。利用这个方式,我们就可以把 openbayestool 中的自定义 metrics 添加到 keras 的训练过程中了。

class OpenBayesMetricsCallback(tf.keras.callbacks.Callback):
    def on_batch_end(self, batch, logs=None):
        """Print Training Metrics"""
        if batch % 300 == 0:
          openbayestool.log_metric('acc', float(logs.get('acc')))
          openbayestool.log_metric('loss', float(logs.get('loss')))

model.fit(x_train, y_train,
          epochs=epochs,
          verbose=1,
          callbacks=[OpenBayesMetricsCallback()])

这里 可以看到完整的代码示例。