我将keras与tensorflow后端一起使用。我的工作包括在我的数据集上比较几个模型的性能,如inception、vgg、resnet等。我想在一张图中绘制几个模型的训练精度。我试着在张力板上做这个,但它不起作用。是否有一种方法可以使用tensorboard在一个绘图中绘制多个图形,或者有其他方法可以做到这一点?非常感谢。
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 将扰乱你跑步的组织:它会将多个条目添加到此列表中(从而造成混乱):我建议您只需执行以下操作:
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)
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指向父目录,这样可以工作,您将在同一个图中得到不同模型的结果。我自己也试过,效果不错。
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.add_summary(summary, epoch_number)
summary_writer = tf.summary.FileWriter(logs_path, graph=tf.get_default_graph())
tensorboard --logdir="logpath"
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
3条答案
按热度按时间zc0qhyus1#
如果您使用的是tensorboardx或pytorch 1.2中的summarywriter,则有一个名为add_scalars的方法:
可以这样称呼:
它将显示如下:
当心
add_scalars
将扰乱你跑步的组织:它会将多个条目添加到此列表中(从而造成混乱):我建议您只需执行以下操作:
hwamh0ep2#
您完全可以绘制标量,如损失和验证精度:
tf.summary.scalar("loss", cost)
其中成本是Tensorcost = 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指向父目录,这样可以工作,您将在同一个图中得到不同模型的结果。我自己也试过,效果不错。
3qpi33ja3#
只需将每个跑步记录保存在主文件夹下的不同文件夹中,然后打开主文件夹上的tensorboard即可。
从终端运行张力板,如下所示: