Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Tensorboard中为两个不同的图表设置双轴_Python_Tensorflow_Keras_Tensorboard - Fatal编程技术网

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)

我想这是个好主意。但是你知道这些值可能会随着时间的推移而改变。所以这个把戏不会持续很久。