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

jv4diomz  于 2021-09-08  发布在  Java
关注(0)|答案(3)|浏览(416)

我将keras与tensorflow后端一起使用。我的工作包括在我的数据集上比较几个模型的性能,如inception、vgg、resnet等。我想在一张图中绘制几个模型的训练精度。我试着在张力板上做这个,但它不起作用。
是否有一种方法可以使用tensorboard在一个绘图中绘制多个图形,或者有其他方法可以做到这一点?
非常感谢。

zc0qhyus

zc0qhyus1#

如果您使用的是tensorboardx或pytorch 1.2中的summarywriter,则有一个名为add_scalars的方法:
可以这样称呼:

my_summary_writer.add_scalars(f'loss/check_info', {
    'score': score[iteration],
    'score_nf': score_nf[iteration],
}, iteration)

它将显示如下:

当心 add_scalars 将扰乱你跑步的组织:它会将多个条目添加到此列表中(从而造成混乱):

我建议您只需执行以下操作:

my_summary_writer.add_scalar(f'check_info/score',    score[iter],    iter)
my_summary_writer.add_scalar(f'check_info/score_nf', score_nf[iter], iter)
hwamh0ep

hwamh0ep2#

您完全可以绘制标量,如损失和验证精度: tf.summary.scalar("loss", cost) 其中成本是Tensor 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" 然后打开http://0.0.0.0:6006/ 进入您的web浏览器
您可以参考以下链接:https://github.com/jayshah19949596/tensorboard-visualization-freezing-graph
可以绘制的其他内容包括权重、输入
也可以在tensorboard上显示图像
我认为如果你在tensorflow 1.5中使用keras,那么使用tensorboard是很容易的,因为在tensorflow 1.5中keras是作为他们的官方高级api包含的
我相信,通过使用具有不同日志路径的不同filewriter示例,您可以为具有不同超参数的同一模型在同一图形上绘制不同的精度
查看下图:

我不知道你是否能在同一张图上画出不同模型的不同精度。。。但是你可以编写一个程序来实现这一点
可能您可以将不同模型的摘要信息写入不同的目录,然后将tensor board指向父目录,以便按照@robertlugg的评论中的建议,在同一个图表上绘制不同模型的精度
===========================更新=================
我已经尝试将不同模型的精度和损失保存到不同的目录中,然后使tensorboard指向父目录,这样可以工作,您将在同一个图中得到不同模型的结果。我自己也试过,效果不错。

3qpi33ja

3qpi33ja3#

只需将每个跑步记录保存在主文件夹下的不同文件夹中,然后打开主文件夹上的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 --logdir=logs

相关问题