Python TensorBoard-在同一个图上同时训练的两个网络的绘图损失
是否有一种方法可以为同时接受训练的两个不同网络绘制训练损失图 目前,我使用两个Python TensorBoard-在同一个图上同时训练的两个网络的绘图损失,python,tensorflow,tensorboard,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
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\u class
和loss\u class\u 1
。我在不同的地方读到过,比如,创建两个目录是一种方法。我遗漏了什么吗?您没有包含代码,但我怀疑您的问题是因为您将所有操作添加到同一个图形(默认图形)中
尝试创建单独的图形并将它们添加到(图形参数)
大概是这样的:
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()
,然后调用它们。如果我错了,请纠正我,但这意味着我不再同时训练两个网络了,不是吗?我会将tf.Session(graph=g1)作为sess:#先进行培训,然后将tf.Session(graph=g2)作为sess:#进行第二次培训?@Leo是的,你是对的。我不知怎么错过了那部分。但是,如果您将向同一个默认图形添加内容,TB将显示此图形,无论您将直接在其中写入它。您是指实际的图形表示吗?因为我真的不在乎。虽然,我从你说的话中得到的是,如果我把两个同名的摘要放在同一个图中,那么就没有办法绘制两个标量,因为TF将重命名第二个变量。这是正确的吗?有解决办法吗?(除了分割图形和会话)在您引用的示例中,相同的丢失被写入两个不同的目录。这里,你有两个不同的损失。@user1735003你知道我怎么能在同一个图中画出这两个不同的损失吗?提到一种方式,看起来确实有点脆弱。