是否有办法同时绘制两个不同网络的训练损失?
目前我使用两个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_class
和loss_class_1
。我在here和there之类的不同地方读过,创建两个目录是最佳选择。我错过了什么吗?
答案 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()
,然后调用它们。