Python 在Tensorboard中为两个不同的图表设置双轴
以下是两个示例:Python 在Tensorboard中为两个不同的图表设置双轴,python,tensorflow,keras,tensorboard,Python,Tensorflow,Keras,Tensorboard,以下是两个示例: 1完美地工作,因为天平是一样的: import tensorflow as tf from numpy import random writer_1 = tf.summary.FileWriter("./logs/plot_1") writer_2 = tf.summary.FileWriter("./logs/plot_2") log_var = tf.Variable(0.0) tf.summary.scalar("loss", log_var) write_op =
1完美地工作,因为天平是一样的:
import tensorflow as tf
from numpy import random
writer_1 = tf.summary.FileWriter("./logs/plot_1")
writer_2 = tf.summary.FileWriter("./logs/plot_2")
log_var = tf.Variable(0.0)
tf.summary.scalar("loss", log_var)
write_op = tf.summary.merge_all()
session = tf.InteractiveSession()
session.run(tf.global_variables_initializer())
for i in range(100):
# for writer 1
summary = session.run(write_op, {log_var: random.rand()})
writer_1.add_summary(summary, i)
writer_1.flush()
# for writer 2
summary = session.run(write_op, {log_var: random.rand()})
writer_2.add_summary(summary, i)
writer_2.flush()
print(i)
得到了一个可以理解的数字:
但请看第二种情况,其中的值不符合相同的范围。在这种情况下,我需要在同一个图表上有两个不同的轴,以便得到一个好的和可理解的图像。检查代码:
import tensorflow as tf
from numpy import random
writer_1 = tf.summary.FileWriter("./logs/plot_1")
writer_2 = tf.summary.FileWriter("./logs/plot_2")
log_var = tf.Variable(0.0)
tf.summary.scalar("loss", log_var)
write_op = tf.summary.merge_all()
session = tf.InteractiveSession()
session.run(tf.global_variables_initializer())
for i in range(100):
# for writer 1
summary = session.run(write_op, {log_var: i*10})
writer_1.add_summary(summary, i)
writer_1.flush()
# for writer 2
summary = session.run(write_op, {log_var: random.rand()})
writer_2.add_summary(summary, i)
writer_2.flush()
print(i)
查看获得的图像:请帮我查询。同一绘图中不能有两个轴,必须将值放在两个不同的绘图中。这有点棘手,因为绘图是由摘要的名称决定的,所以在您的示例中,您需要手动构建摘要对象
import tensorflow as tf
from numpy import random
writer_1 = tf.summary.FileWriter("./logs/plot_1")
writer_2 = tf.summary.FileWriter("./logs/plot_2")
log_var = tf.Variable(0.0)
session = tf.InteractiveSession()
session.run(tf.global_variables_initializer())
for i in range(100):
# for writer 1
log1 = session.run(log_var, {log_var: i*10})
summary1 = tf.train.Summary()
summary1.value.add(tag='loss1', simple_value=log1)
writer_1.add_summary(summary1, i)
writer_1.flush()
# for writer 2
log2 = session.run(log_var, {log_var: random.rand()})
summary2 = tf.train.Summary()
summary2.value.add(tag='loss2', simple_value=log2)
writer_2.add_summary(summary2, i)
writer_2.flush()
print(i)
我想这是个好主意。但是你知道这些值可能会随着时间的推移而改变。所以这个把戏不会持续很久。