Tensorflow摘要:添加一个不属于计算图的变量

时间:2017-04-10 11:36:31

标签: python tensorflow machine-learning tensorboard

我有一个随着列车迭代而变化的变量。变量不作为计算图的一部分计算。

是否可以将其添加到张量流摘要中,以便将其与损失函数一起显示?

3 个答案:

答案 0 :(得分:16)

是的,您可以在图表外创建摘要。

以下是在图表外部创建摘要的示例(而不是TF op):

output_path = "/tmp/myTest"
summary_writer = tf.summary.FileWriter(output_path)

for x in range(100):
   myVar = 2*x

   summary=tf.Summary()
   summary.value.add(tag='myVar', simple_value = myVar)
   summary_writer.add_summary(summary, x)

summary_writer.flush()

答案 1 :(得分:1)

如果您有其他摘要,则可以为变量添加新的占位符,该变量不作为计算图的一部分进行计算。

...
myVar_tf = tf.placeholder(dtype=tf.float32)
tf.summary.scalar('myVar', myVar_tf)
merged_summary = tf.summary.merge_all()
...
...
myVar = 0.1
feed_dict = { myVar_tf : myVar}
summary, step = sess.run([merged_summary, global_step],feed_dict=feed_dict)
summary_writer.add_summary(summary, step)

答案 2 :(得分:0)

TF 2.0示例:

def write_list_toTB(list_myVar, main_directory, variable_name= "myVar"):
    output_path = os.path.join(main_directory, variable_name)
    summary_writer = tf.summary.create_file_writer(output_path)

    with summary_writer.as_default():
        for i,val in enumerate(list_myVar):
            tf.summary.scalar(name=variable_name, data=val,step=i)

    summary_writer.flush()

然后在cmd中写入:

tensorboard --logdir main_directory