Kav*_*van 12 keras tensorflow tensorboard
我正在使用带有Tensorflow后端的Keras.我的工作涉及在我的数据集上比较几个模型的性能,如Inception,VGG,Resnet等.我想在一个图中绘制几个模型的训练精度.我试图在Tensorboard中这样做,但它不起作用.
有没有办法使用Tensorboard在一个图中绘制多个图形,还是有其他方法可以做到这一点?
谢谢
Man*_*EPA 24
这是一种将一个图中的多个图形分组为一次运行的方法,使用PyTorch上的add_custom_scalar。
我得到什么:
对应的完整运行代码:
from torch.utils.tensorboard import SummaryWriter
import math
layout = {
"ABCDE": {
"loss": ["Multiline", ["loss/train", "loss/validation"]],
"accuracy": ["Multiline", ["accuracy/train", "accuracy/validation"]],
},
}
writer = SummaryWriter()
writer.add_custom_scalars(layout)
epochs = 10
batch_size = 50
for epoch in range(epochs):
for index in range(batch_size):
global_batch_index = epoch * batch_size + index
train_loss = math.exp(-0.01 * global_batch_index)
train_accuracy = 1 - math.exp(-0.01 * global_batch_index)
writer.add_scalar("loss/train", train_loss, global_batch_index)
writer.add_scalar("accuracy/train", train_accuracy, global_batch_index)
validation_loss = train_loss + 0.1
validation_accuracy = train_accuracy - 0.1
writer.add_scalar("loss/validation", validation_loss, global_batch_index)
writer.add_scalar("accuracy/validation", validation_accuracy, global_batch_index)
writer.close()
Run Code Online (Sandbox Code Playgroud)
请注意,窗口左上角使用的选项卡不是SCALARS但是CUSTOM SCALARS
Ben*_*ier 20
如果您使用的是SummaryWriter从tensorboardX或pytorch 1.2,你有一个方法叫add_scalars:
像这样调用它:
my_summary_writer.add_scalars(f'loss/check_info', {
'score': score[iteration],
'score_nf': score_nf[iteration],
}, iteration)
Run Code Online (Sandbox Code Playgroud)
它会显示如下:

小心这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)
Run Code Online (Sandbox Code Playgroud)
您绝对可以绘制标量,例如损失和验证准确性: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"
然后在您的网络浏览器中打开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 实例在具有不同超参数的同一模型的同一图形上绘制不同的精度
我不知道你是否可以在同一张图上绘制不同模型的不同精度......但是你可以编写一个程序来做到这一点
也许您可以将不同模型的摘要信息写入不同的目录,然后将 tensor-board 指向父目录,以按照@RobertLugg 的评论中的建议在同一图表上绘制不同模型的准确性
==================== 更新 ==================
我尝试将不同模型的准确性和损失保存到不同的目录,然后使 tensorboard 指向父目录并且它有效,您将在同一图中获得不同模型的结果。我自己试过这个,它有效。
| 归档时间: |
|
| 查看次数: |
9449 次 |
| 最近记录: |