code: def _create_ema_callback(self):
          
          with self.cached_name_scope():
              # in TF there is no API to get queue capacity, so we can only summary the size
              size = tf.cast(self.queue.size(), tf.float32, name='queue_size')
          size_ema_op = add_moving_summary(size, collection=None, decay=0.5)[0].op
          ret = RunOp(
              lambda: size_ema_op,
              run_before=False,
              run_as_trigger=False,
              run_step=True)
          ret.name_scope = "InputSource/EMA"
          return ret
docs: Create a hook-only callback which maintain EMA of the queue size.
          Also tf.summary.scalar the EMA.