code: def _rollout_metadata(batch_env, distributional_size=1):
      """Metadata for rollouts."""
      batch_env_shape = batch_env.observ.get_shape().as_list()
      batch_size = [batch_env_shape[0]]
      value_size = batch_size
      if distributional_size > 1:
          value_size = batch_size + [distributional_size]
      shapes_types_names = [
          # TODO(piotrmilos): possibly retrieve the observation type for batch_env
          (
              batch_size + batch_env_shape[1:],
              batch_env.observ_dtype,
              "observation",
          ),
          (batch_size, tf.float32, "reward"),
          (batch_size, tf.bool, "done"),
          (
              batch_size + list(batch_env.action_shape),
              batch_env.action_dtype,
              "action",
          ),
          (batch_size, tf.float32, "pdf"),
          (value_size, tf.float32, "value_function"),
      ]
      return shapes_types_names
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import os
  from tensor2tensor.layers import common_layers
  from tensor2tensor.models.research.rl import get_policy
  from tensor2tensor.rl import ppo
  from tensor2tensor.rl.envs.tf_atari_wrappers import StackWrapper
  from tensor2tensor.rl.envs.tf_atari_wrappers import WrapperBase
  from tensor2tensor.rl.policy_learner import PolicyLearner
  from tensor2tensor.rl.restarter import Restarter
  from tensor2tensor.utils import trainer_lib
  import tensorflow.compat.v1
  import tensorflow_probability
label_desc: Use image node_id 3 for calling a global function with example usage: _rollout_metadata(batch_env, distributional_size) and returns: shapes_types_names