class_docstr: An `EnvProblem` when observations are RGB arrays.
  
  This takes care of wrapping a rendered gym environment to behave like a
  `VideoProblem`. This class assumes the underlying gym environment is either a
  `gym_utils.RenderedEnv` or it natively returns rendered scene for
  observations. i.e. the underlying gym environment should have a
  `Box` observation space with the following shape: [frame_height, frame_width,
  channels]
  
  Note: The method resolution order for this class is:
  `RenderedEnvProblem`, `EnvProblem`, `Env`, `VideoProblem`, `Problem`
code: def initialize_environments(
      self,
      batch_size=1,
      parallelism=1,
      rendered_env=True,
      per_env_kwargs=None,
      **kwargs,
  ):
      gym_env_problem.GymEnvProblem.initialize_environments(
          self,
          batch_size=batch_size,
          parallelism=parallelism,
          per_env_kwargs=per_env_kwargs,
          **kwargs,
      )
      # Assert the underlying gym environment has correct observation space
      if rendered_env:
          assert len(self.observation_spec.shape) == 3
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  import png
  import six
  from tensor2tensor.data_generators import video_utils
  from tensor2tensor.envs import env_problem
  from tensor2tensor.envs import gym_env_problem
  from tensor2tensor.utils import contrib
  import tensorflow.compat.v1
label_desc: Use image node_id 2 for calling the RenderedEnvProblem obj's underlying member method code with example usage: obj.initialize_environments(batch_size, parallelism, rendered_env, per_env_kwargs) without return types