首页 > 解决方案 > 张量板上显示的标量摘要不正确

问题描述

我正在尝试随机生成 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。有人可以帮我指出我的错误吗?

标签: pythontensorflowtensorboard

解决方案


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

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)

推荐阅读