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

时间:2018-02-23 15:26:01

标签: tensorflow keras tensorboard

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

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

谢谢

3 个答案:

答案 0 :(得分:2)

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

const obj = {
  id: "user",
  password: "password"
};

Object.keys(obj)
    .forEach(function(key) {
        const val = obj[key];
    document.querySelector(`input[name="${key}"]`).value = val;
    });

从终端运行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])

答案 1 :(得分:2)

如果您使用的是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)

它将显示如下:

tensorboard image


请注意,add_scalars会干扰您的运行组织:它将向此列表添加多个条目(从而造成混乱):

tensorboard image

我建议您改为:

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)

答案 2 :(得分:1)

  • 你绝对可以绘制像损失和放大器一样的标量。验证准确度:tf.summary.scalar("loss", cost)其中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"
  • 然后在您的网络浏览器中打开http://0.0.0.0:6006/
  • 您可以参考以下链接:https://github.com/jayshah19949596/Tensorboard-Visualization-Freezing-Graph
  • 您可以绘制的其他内容是权重,输入
  • 您还可以在tensorboard上显示图像
  • 我认为如果你使用的是具有张量流量1.5的keras,那么使用tensorboard很容易,因为在tensorflow中1.5 keras被包含为他们的官方高级别api
  • 我相信通过使用具有不同日志路径的不同FileWriter实例,可以在同一图表上为不同的超参数绘制不同的精度
  • 检查下图: enter image description here
  • 我不知道你是否可以在同一个图表上绘制不同模型的不同精度......但是你可以编写一个程序来做那个
  • 您可以将不同模型的摘要信息写入不同目录,然后将张量板指向父目录,以便在@RobertLugg评论中建议的同一图表上绘制不同模型的准确度

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

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