TensorBoard - 在同一个图表上同时训练2个网络的情节损失

时间:2017-04-21 07:58:53

标签: python tensorflow tensorboard

是否有办法同时绘制两个不同网络的训练损失?

目前我使用两个FileWriter并将摘要保存到两个不同的目录:

writer_cnn  = tf.summary.FileWriter(os.path.join('log', 'cnn'))
writer_dann = tf.summary.FileWriter(os.path.join('log', 'dann'))
s_loss_cnn  = tf.summary.scalar('loss_class', loss_class_cnn)
s_loss_dann = tf.summary.scalar('loss_class', loss_class_dann)

后来在代码中:

s_cnn  = sess.run(s_loss_cnn, feed_dict=feed_batch)
s_dann = sess.run(s_loss_dann, feed_dict=feed_batch)
writer_cnn.add_summary(s_cnn, global_step)
writer_dann.add_summary(s_dann, global_step)

但是当我解雇TensorBoard时,我会得到两个不同的图loss_classloss_class_1。我在herethere之类的不同地方读过,创建两个目录是最佳选择。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您尚未包含代码,但我怀疑您的问题是因为您将所有操作添加到同一图表(默认图表)。

尝试创建单独的图表并将其添加到writer(图表参数)

这样的事情:

def graph1():
    g1 = tf.Graph()
    with g1.as_default() as g:
        # define your ops
    with tf.Session( graph = g ) as sess:
        # do all the stuff and write the writer

创建一个类似的函数graph2(),然后调用它们。