class_docstr: Defines a configuration class from which a MAML Algorithm can be built.
  
  Example:
      >>> from ray.rllib.algorithms.maml import MAMLConfig
      >>> config = MAMLConfig().training(use_gae=False).resources(num_gpus=1)
      >>> print(config.to_dict())  # doctest: +SKIP
      >>> # Build a Algorithm object from the config and run 1 training iteration.
      >>> algo = config.build(env="CartPole-v1")  # doctest: +SKIP
      >>> algo.train()  # doctest: +SKIP
  
  Example:
      >>> from ray.rllib.algorithms.maml import MAMLConfig
      >>> from ray import air
      >>> from ray import tune
      >>> config = MAMLConfig()
      >>> # Print out some default values.
      >>> print(config.lr)  # doctest: +SKIP
      >>> # Update the config object.
      >>> config = config.training(  # doctest: +SKIP
      ...     grad_clip=tune.grid_search([10.0, 40.0]))
      >>> # Set the config object's env.
      >>> config = config.environment(env="CartPole-v1")
      >>> # Use to_dict() to get the old-style python config dict
      >>> # when running with tune.
      >>> tune.Tuner(  # doctest: +SKIP
      ...     "MAML",
      ...     run_config=air.RunConfig(stop={"episode_reward_mean": 200}),
      ...     param_space=config.to_dict(),
      ... ).fit()
code: def validate(self) -> None:
      # Call super's validation method.
      super().validate()
  
      if self.num_gpus > 1:
          raise ValueError("`num_gpus` > 1 not yet supported for MAML!")
      if self.inner_adaptation_steps <= 0:
          raise ValueError("Inner Adaptation Steps must be >=1!")
      if self.maml_optimizer_steps <= 0:
          raise ValueError("PPO steps for meta-update needs to be >=0!")
      if self.entropy_coeff < 0:
          raise ValueError("`entropy_coeff` must be >=0.0!")
      if self.batch_mode != "complete_episodes":
          raise ValueError(
              "`batch_mode`=truncate_episodes not supported!"
          )
      if self.num_rollout_workers <= 0:
          raise ValueError("Must have at least 1 worker/task!")
      if self.create_env_on_local_worker is False:
          raise ValueError(
              "Must have an actual Env created on the driver "
              "(local) worker! Try setting `config.environment("
              "create_env_on_local_worker=True)`."
          )
  
imports: import logging
  from typing import Optional, Type
  import numpy
  from ray.rllib.algorithms.algorithm import Algorithm
  from ray.rllib.algorithms.algorithm_config import AlgorithmConfig, NotProvided
  from ray.rllib.evaluation.metrics import collect_metrics, get_learner_stats
  from ray.rllib.evaluation.worker_set import WorkerSet
  from ray.rllib.execution.common import STEPS_SAMPLED_COUNTER, STEPS_TRAINED_COUNTER, STEPS_TRAINED_THIS_ITER_COUNTER, _get_shared_metrics
  from ray.rllib.execution.metric_ops import CollectMetrics
  from ray.rllib.policy.policy import Policy
  from ray.rllib.policy.sample_batch import concat_samples, convert_ma_batch_to_sample_batch
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.deprecation import DEPRECATED_VALUE
  from ray.rllib.utils.metrics.learner_info import LEARNER_INFO
  from ray.rllib.utils.sgd import standardized
  from ray.util.iter import LocalIterator, from_actors
label_desc: Use image node_id 3 for calling the MAMLConfig obj's underlying member method code with example usage: obj.validate() without return types