关于tf.summary.scalar的用法

时间:2017-10-30 19:15:48

标签: python machine-learning tensorflow tensorboard

我正在研究Tensorflow实现,其中包括以下代码段。我不太明白tf.summary.scalar试图实现什么。我的理解是"queue/%s/fraction_of_%d_full" % (q.name + "_" + phase, capacity)应该是一个名字,但这个名字是什么样的? math_ops.cast(q.size(), tf.float32) * (1. / capacity)应该是一个张量,但这个张量代表什么?

capacity = 50
q = tf.FIFOQueue(capacity=50, dtypes=dtypes, shapes=shapes)
tf.summary.scalar("queue/%s/fraction_of_%d_full" %
                  (q.name + "_" + phase, capacity),
                  math_ops.cast(q.size(), tf.float32) * (1. / capacity))

1 个答案:

答案 0 :(得分:2)

这个tf.summary.scalar调用会将队列大小(相对于容量)输出到tensorboard,因为它在会话期间会发生变化。

标量将通过与此模式匹配的名称显示:'queue/%s/fraction_of_%d_full',例如'queue/fifo_queue_training/fraction_of_100_full',其中fifo_queue是当前队列,其容量为100

它的值将等于队列中的已用空间,即queue.size() / queue.capacity。这条线只是一种将其转换为32位浮点数的奇特方式:

math_ops.cast(q.size(), tf.float32) * (1. / capacity)