class_docstr: Natural Policy Gradient Optimization.
  
  Args:
      env_spec (EnvSpec): Environment specification.
      policy (garage.tf.policies.StochasticPolicy): Policy.
      baseline (garage.tf.baselines.Baseline): The baseline.
      sampler (garage.sampler.Sampler): Sampler.
      scope (str): Scope for identifying the algorithm.
          Must be specified if running multiple algorithms
          simultaneously, each using different environments
          and policies.
      discount (float): Discount.
      gae_lambda (float): Lambda used for generalized advantage
          estimation.
      center_adv (bool): Whether to rescale the advantages
          so that they have mean 0 and standard deviation 1.
      positive_adv (bool): Whether to shift the advantages
          so that they are always positive. When used in
          conjunction with center_adv the advantages will be
          standardized before shifting.
      fixed_horizon (bool): Whether to fix horizon.
      pg_loss (str): A string from: 'vanilla', 'surrogate',
          'surrogate_clip'. The type of loss functions to use.
      lr_clip_range (float): The limit on the likelihood ratio between
          policies, as in PPO.
      max_kl_step (float): The maximum KL divergence between old and new
          policies, as in TRPO.
      optimizer (object): The optimizer of the algorithm. Should be the
          optimizers in garage.tf.optimizers.
      optimizer_args (dict): The arguments of the optimizer.
      policy_ent_coeff (float): The coefficient of the policy entropy.
          Setting it to zero would mean no entropy regularization.
      use_softplus_entropy (bool): Whether to estimate the softmax
          distribution of the entropy to prevent the entropy from being
          negative.
      use_neg_logli_entropy (bool): Whether to estimate the entropy as the
          negative log likelihood of the action.
      stop_entropy_gradient (bool): Whether to stop the entropy gradient.
      entropy_method (str): A string from: 'max', 'regularized',
          'no_entropy'. The type of entropy method to use. 'max' adds the
          dense entropy to the reward for each time step. 'regularized' adds
          the mean entropy to the surrogate objective. See
          https://arxiv.org/abs/1805.00909 for more details.
      name (str): The name of the algorithm.
  
  Note:
      sane defaults for entropy configuration:
          - entropy_method='max', center_adv=False, stop_gradient=True
            (center_adv normalizes the advantages tensor, which will
            significantly alleviate the effect of entropy. It is also
            recommended to turn off entropy gradient so that the agent
            will focus on high-entropy actions instead of increasing the
            variance of the distribution.)
          - entropy_method='regularized', stop_gradient=False,
            use_neg_logli_entropy=False
docstr: Check entropy configuration.
  
  Args:
      entropy_method (str): A string from: 'max', 'regularized',
          'no_entropy'. The type of entropy method to use. 'max' adds the
          dense entropy to the reward for each time step. 'regularized'
          adds the mean entropy to the surrogate objective. See
          https://arxiv.org/abs/1805.00909 for more details.
      center_adv (bool): Whether to rescale the advantages
          so that they have mean 0 and standard deviation 1.
      stop_entropy_gradient (bool): Whether to stop the entropy gradient.
      use_neg_logli_entropy (bool): Whether to estimate the entropy as
          the negative log likelihood of the action.
      policy_ent_coeff (float): The coefficient of the policy entropy.
          Setting it to zero would mean no entropy regularization.
  
  Raises:
      ValueError: If center_adv is True when entropy_method is max.
      ValueError: If stop_gradient is False when entropy_method is max.
      ValueError: If policy_ent_coeff is non-zero when there is
          no entropy method.
      ValueError: If entropy_method is not one of 'max', 'regularized',
          'no_entropy'.
docstr_tok: ["Check","entropy","configuration",".","Args",":","entropy_method","(","str",")",":","A","string","from",":","'max","'",",","'regularized","'",",","'no_entropy","'",".","The","type","of","entropy","method","to","use",".","'max","'","adds","the","dense","entropy","to","the","reward","for","each","time","step",".","'regularized'","adds","the","mean","entropy","to","the","surrogate","objective",".","See","https",":","\/\/arxiv.org\/abs\/1805.00909","for","more","details",".","center_adv","(","bool",")",":","Whether","to","rescale","the","advantages","so","that","they","have","mean","0","and","standard","deviation","1.","stop_entropy_gradient","(","bool",")",":","Whether","to","stop","the","entropy","gradient",".","use_neg_logli_entropy","(","bool",")",":","Whether","to","estimate","the","entropy","as","the","negative","log","likelihood","of","the","action",".","policy_ent_coeff","(","float",")",":","The","coefficient","of","the","policy","entropy",".","Setting","it","to","zero","would","mean","no","entropy","regularization",".","Raises",":","ValueError",":","If","center_adv","is","True","when","entropy_method","is","max",".","ValueError",":","If","stop_gradient","is","False","when","entropy_method","is","max",".","ValueError",":","If","policy_ent_coeff","is","non-zero","when","there","is","no","entropy","method",".","ValueError",":","If","entropy_method","is","not","one","of","'max","'",",","'regularized","'",",","'no_entropy","'","."]
code: def _check_entropy_configuration(
      self,
      entropy_method,
      center_adv,
      stop_entropy_gradient,
      use_neg_logli_entropy,
      policy_ent_coeff,
  ):
      """Check entropy configuration.
  
      Args:
          entropy_method (str): A string from: 'max', 'regularized',
              'no_entropy'. The type of entropy method to use. 'max' adds the
              dense entropy to the reward for each time step. 'regularized'
              adds the mean entropy to the surrogate objective. See
              https://arxiv.org/abs/1805.00909 for more details.
          center_adv (bool): Whether to rescale the advantages
              so that they have mean 0 and standard deviation 1.
          stop_entropy_gradient (bool): Whether to stop the entropy gradient.
          use_neg_logli_entropy (bool): Whether to estimate the entropy as
              the negative log likelihood of the action.
          policy_ent_coeff (float): The coefficient of the policy entropy.
              Setting it to zero would mean no entropy regularization.
  
      Raises:
          ValueError: If center_adv is True when entropy_method is max.
          ValueError: If stop_gradient is False when entropy_method is max.
          ValueError: If policy_ent_coeff is non-zero when there is
              no entropy method.
          ValueError: If entropy_method is not one of 'max', 'regularized',
              'no_entropy'.
  
      """
      del use_neg_logli_entropy
  
      if entropy_method == "max":
          if center_adv:
              raise ValueError(
                  "center_adv should be False when "
                  "entropy_method is max"
              )
          if not stop_entropy_gradient:
              raise ValueError(
                  "stop_gradient should be True when "
                  "entropy_method is max"
              )
          self._maximum_entropy = True
          self._entropy_regularzied = False
      elif entropy_method == "regularized":
          self._maximum_entropy = False
          self._entropy_regularzied = True
      elif entropy_method == "no_entropy":
          if policy_ent_coeff != 0.0:
              raise ValueError(
                  "policy_ent_coeff should be zero "
                  "when there is no entropy method"
              )
          self._maximum_entropy = False
          self._entropy_regularzied = False
      else:
          raise ValueError("Invalid entropy_method")
  
imports: import collections
  from dowel import logger, tabular
  import numpy
  import tensorflow
  from garage import log_performance, make_optimizer
  from garage.np import explained_variance_1d, pad_batch_array
  from garage.np.algos import RLAlgorithm
  from garage.tf import center_advs, compile_function, compute_advantages, discounted_returns, flatten_inputs, graph_inputs, positive_advs
  from garage.tf.optimizers import FirstOrderOptimizer
label_desc: Use image node_id 11 for calling the NPO obj's underlying member method code with example usage: obj._check_entropy_configuration(entropy_method, center_adv, stop_entropy_gradient, use_neg_logli_entropy, policy_ent_coeff) without return types