关于 tf.summary.scalar 的使用

with respect to the usage of tf.summary.scalar

我正在研究一个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))

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

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

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

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