class_docstr: This (abstract) class is a generic wrapper of OpenAI Gym env for policy evaluation.
  Attributes need to be override accordingly to have concrete working function.
  
  Attributes.
  ------------
  env_name: str
      Gym OpenAI environment name
  policy_dim: tuple
      Shape of the policy
  state_mean: list
      Average state values of multiple independent runs.
      Current implementations use values from https://github.com/modestyachts/ARS
  state_std: list
      Standard deviation of state values of multiple independent runs.
      Current implementations use values from https://github.com/modestyachts/ARS
  
  Parameters
  -----------
  num_rollouts: int
      number of independent runs.
  activation: str (default: 'tanh')
      activation function, only applicable when len(intermediate_layer_dim>) > 0
  deterministic_sim: bool (default: True)
      Deterministic when initial states are the same for all evaluations
  noise_level: float (default: 0.)
      Level (standard deviation) of noise applied to final action
  intermediate_layer_dim: tuple or None
      Shape of intermediate layers if exists else None
  layer_rescaling_coef: tuple or None
      Scaling coefficient of output layers
  states_normalization: bool (default: True)
      Normalize states with `state_mean` and `state_std`
  random_state: int or None
      random state for reproducibility in Gym environment.
code: def _simulate(self, x: tp.Tuple) -> float:
      try:
          env = GenericMujocoEnv(
              env_name=self.env_name,
              state_mean=self.state_mean
              if self.states_normalization
              else None,
              state_std=self.state_std
              if self.states_normalization
              else None,
              num_rollouts=self.num_rollouts,
              activation=self.activation,
              layer_rescaling_coef=self.layer_rescaling_coef,
              noise_level=self.noise_level,
              random_state=self.parametrization.random_state,
          )
      except gym.error.DependencyNotInstalled as e:
          raise base.UnsupportedExperiment(
              "MuJoCo not installed (Linux/OSX support only). If you need it, please follow this installation guide: https://github.com/openai/mujoco-py#install-mujoco"
          ) from e
      env.env.seed(
          self.random_state
          if self.deterministic_sim
          else self.parametrization.random_state.randint(10000)
      )
      loss = env(x)
      # base.update_leaderboard(f'{self.env_name},{self.parametrization.dimension}', loss, x, verbose=True)
      return loss
  
imports: import numpy
  import gym
  import nevergrad.common.typing
  from nevergrad.parametrization import parameter
  from ..None import base
  from .mujoco import GenericMujocoEnv
label_desc: Use image node_id 2 for calling the BaseFunction obj's underlying member method code with example usage: obj._simulate(x) and returns: loss