docs: def _build(self):
      """Returns a tuple containing observation and target one-hot tensors."""
      q = tf.FIFOQueue(
          self._queue_capacity, [self._dtype, self._dtype],
          shapes=[[self._num_steps, self._batch_size, self._vocab_size]]*2)
      obs, target = tf.py_func(self._get_batch, [], [tf.int32, tf.int32])
      obs = self._one_hot(obs)
      target = self._one_hot(target)
      enqueue_op = q.enqueue([obs, target])
      obs, target = q.dequeue()
      tf.train.add_queue_runner(tf.train.QueueRunner(q, [enqueue_op]))
      return SequenceDataOpsNoMask(obs, target)