【问题标题】:Incorrect scalar summary being shown on tensorboard张量板上显示的标量摘要不正确
【发布时间】:2019-12-31 14:26:12
【问题描述】:

我正在尝试随机生成 100 个唯一数字,然后将它们写为摘要。但是,每次摘要编写器都会写入变量的默认值。

import warnings
with warnings.catch_warnings():
    warnings.filterwarnings("ignore", category=FutureWarning)
    import tensorflow as tf

tf.compat.v1.reset_default_graph()
x = tf.compat.v1.Variable(name="X", shape=[], initial_value=0.0)
summary = tf.compat.v1.summary.scalar("X_summary", x)
summary_op = tf.compat.v1.summary.merge_all()

with tf.compat.v1.Session() as sess:
    sess.run(tf.compat.v1.global_variables_initializer())
    writer = tf.compat.v1.summary.FileWriter("train_dir", sess.graph)
    for step in range(100):
        x = tf.random.normal(stddev=0.01, shape=[1])
        x, summary_ = sess.run([x, summary_op])
        writer.add_summary(summary_, step)

摘要作者将所有值都写为 0。有人可以帮我指出我的错误吗?

【问题讨论】:

  • 您的变量 summary_op 仍然保留旧的 x 变量,它只是一个初始值为 0.0 的变量。同时,循环中的 x for step in range(100) 是产生随机正态变量的实际操作

标签: python tensorflow tensorboard


【解决方案1】:

试试这个: 我给变量声明一个初始化器,它会产生一个随机的正常值,而之前你只是给出默认值零。

import tensorflow as tf
tf.reset_default_graph()   
x_scalar = tf.get_variable('x_scalar', shape=[], initializer=tf.truncated_normal_initializer(mean=0, stddev=1))
first_summary = tf.summary.scalar(name='normal_x', tensor=x_scalar)
init = tf.global_variables_initializer()
with tf.Session() as sess:
    writer = tf.summary.FileWriter('./train_dir', sess.graph)
    for step in range(100):
        sess.run(init)
        summary = sess.run(first_summary)
        writer.add_summary(summary, step)

【讨论】:

  • 我最初已经尝试过,但只犯了一个错误,即没有在每个循环中运行 init。谢谢。
猜你喜欢
  • 2018-06-29
  • 2018-02-26
  • 1970-01-01
  • 2018-03-25
  • 2016-02-19
  • 2017-08-12
  • 2023-03-21
  • 2020-12-30
  • 2018-01-27
相关资源
最近更新 更多