使用Tensorboard在一个图中绘制多个图形

问题描述 投票:9回答:2

我正在使用带有Tensorflow后端的Keras。我的工作涉及在我的数据集上比较几个模型的性能,如Inception,VGG,Resnet等。我想在一个图中绘制几个模型的训练精度。我试图在Tensorboard中这样做,但它不起作用。

有没有办法使用Tensorboard在一个图中绘制多个图形,还是有其他方法可以做到这一点?

谢谢

tensorflow keras tensorboard
2个回答
2
投票

只需将每个运行保存在主文件夹下的不同文件夹中,然后在主文件夹上打开tensorboard。

for i in range(x):
    tensorboard = TensorBoard(log_dir='./logs/' + 'run' + str(i), histogram_freq=0,
                                     write_graph=True, write_images=False)

    model.fit(X, Y, epochs=150, batch_size=10, callbacks=[tensorboard])

从终端,运行tensorboard如下:

tensorboard --logdir=logs

1
投票
  • 你绝对可以绘制像损失和验证准确性一样的标量:tf.summary.scalar("loss", cost),其中成本是张量`cost = tf.reduce_mean(-tf.reduce_sum(y * tf.log(pred),reduction_indices = 1))
  • 现在您编写汇总以绘制所有值,然后您可能希望将所有这些汇总合并为单个汇总:merged_summary_op = tf.summary.merge_all()
  • 下一步将在summary = sess.run(merged_summary_op)的会话中运行此摘要
  • 运行merged_summary_op之后,你必须使用summary_writer编写摘要:summary_writer.add_summary(summary, epoch_number)其中summary_writer = tf.summary.FileWriter(logs_path, graph=tf.get_default_graph())
  • 现在打开终端或cmd并运行以下命令:“运行命令tensorboard --logdir="logpath"
  • 然后在您的Web浏览器中打开http://0.0.0.0:6006/
  • 您可以参考以下链接:https://github.com/jayshah19949596/Tensorboard-Visualization-Freezing-Graph
  • 您可以绘制的其他内容是权重,输入
  • 您还可以在张量板上显示图像
  • 我想如果你使用带有tensorflow 1.5的keras那么使用tensorboard很容易因为在tensorflow中1.5 keras被包含作为他们的官方高级api
  • 我相信通过使用具有不同日志路径的不同FileWriter实例,您可以在具有不同超参数的相同模型的同一图表上绘制不同的准确度
  • 检查下图:enter image description here
  • 我不知道你是否可以在同一个图表上绘制不同模型的不同精度......但你可以编写一个程序来做到这一点
  • 也许你可以将不同模型的摘要信息写入不同的目录,然后将张量板指向父目录,以便在@RobertLugg评论中建议的同一图表上绘制不同模型的准确性。

====================更新=================

我已经尝试将不同模型的准确性和丢失保存到不同的目录,然后使张量板指向父目录并且它可以工作,您将在同一图表中获得不同模型的结果。我自己尝试了这个并且它有效。

© www.soinside.com 2019 - 2024. All rights reserved.