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

How do I plot data in a single figure instead of 2 in Tensorboard generated using tf.summary.scalar() on metrics procured from a custom callback?

我使用以下代码在 Tensorboard 中根据从自定义 ROC-AUC 分数回调中获得的指标绘制了 2 个标量图。

for epoch in range(len(history.history['roc_train'])):
    with train_summary_writer.as_default():
        tf.summary.scalar('roc_auc_train', history.history['roc_train'][epoch], step=epoch)
        tf.summary.scalar('roc_auc_val', history.history['roc_val'][epoch], step=epoch)

Tensorboard 中的绘图:

如何将它们放在同一张图中?请帮忙。

创建两个不同的 file_writer 实例,并使用相同的名称(本例中为 roc_auc)在所需情节的上下文中调用 with 语句。

import tensorflow as tf
import numpy as np
import os
import time

now = time.localtime()
subdir = time.strftime("%d-%b-%Y_%H.%M.%S", now)

summary_train = os.path.join("Whosebug", subdir, "train")
summary_val = os.path.join("Whosebug", subdir, "val")

writer_train = tf.summary.create_file_writer(summary_train)
writer_val = tf.summary.create_file_writer(summary_val)

for epoch in range(200):
    with writer_train.as_default():
        tf.summary.scalar(name="roc_auc", data=-np.math.exp(-(epoch/30))+1, step=epoch)
    with writer_val.as_default():
        tf.summary.scalar(name="roc_auc", data=-np.math.exp(-(epoch/15))+1, step=epoch)