docs: def batch_parse_tf_example(batch_size, example_batch):
      """
      Args:
          example_batch: a batch of tf.Example
      Returns:
          A tuple (feature_tensor, dict of output tensors)
      """
      features = {
          'x': tf.FixedLenFeature([], tf.string),
          'pi': tf.FixedLenFeature([], tf.string),
          'outcome': tf.FixedLenFeature([], tf.float32),
      }
      parsed = tf.parse_example(example_batch, features)
      x = tf.decode_raw(parsed['x'], tf.uint8)
      x = tf.cast(x, tf.float32)
      x = tf.reshape(x, [batch_size, go.N, go.N,
                         features_lib.NEW_FEATURES_PLANES])
      pi = tf.decode_raw(parsed['pi'], tf.float32)
      pi = tf.reshape(pi, [batch_size, go.N * go.N + 1])
      outcome = parsed['outcome']
      outcome.set_shape([batch_size])
      return x, {'pi_tensor': pi, 'value_tensor': outcome}