class_docstr: Batch normalization layer, generally should only be used for the agent arguments
  `reward_processing[return_processing]` and `reward_processing[advantage_processing]`
  (specification key: `batch_normalization`).
  
  Args:
      axes (iter[int >= 0]): Normalization axes, excluding batch axis
          (<span style="color:#00C000"><b>default</b></span>: all but last input axes).
      only_mean (bool): Whether to normalize only with respect to mean, not variance
          (<span style="color:#00C000"><b>default</b></span>: false).
      min_variance (float > 0.0): Clip variance lower than minimum
          (<span style="color:#00C000"><b>default</b></span>: 1e-4).
      name (string): Layer name
          (<span style="color:#00C000"><b>default</b></span>: internally chosen).
      input_spec (specification): <span style="color:#00C000"><b>internal use</b></span>.
class_docstr_tok: ["Batch","normalization","layer",",","generally","should","only","be","used","for","the","agent","arguments","`","reward_processing","[","return_processing","]","`","and","`","reward_processing","[","advantage_processing","]","`","(","specification","key",":","`","batch_normalization","`",")",".","Args",":","axes","(","iter","[","int",">","=","0","]",")",":","Normalization","axes",",","excluding","batch","axis","(","<","span","style=","''","color",":","#","00C000","''",">","<","b",">","default","<","\/b",">","<","\/span",">",":","all","but","last","input","axes",")",".","only_mean","(","bool",")",":","Whether","to","normalize","only","with","respect","to","mean",",","not","variance","(","<","span","style=","''","color",":","#","00C000","''",">","<","b",">","default","<","\/b",">","<","\/span",">",":","false",")",".","min_variance","(","float",">","0.0",")",":","Clip","variance","lower","than","minimum","(","<","span","style=","''","color",":","#","00C000","''",">","<","b",">","default","<","\/b",">","<","\/span",">",":","1e-4",")",".","name","(","string",")",":","Layer","name","(","<","span","style=","''","color",":","#","00C000","''",">","<","b",">","default","<","\/b",">","<","\/span",">",":","internally","chosen",")",".","input_spec","(","specification",")",":","<","span","style=","''","color",":","#","00C000","''",">","<","b",">","internal","use","<","\/b",">","<","\/span",">","."]
code: def __init__(
      self,
      *,
      axes=None,
      only_mean=False,
      min_variance=1e-4,
      name=None,
      input_spec=None,
  ):
      super().__init__(name=name, input_spec=input_spec)
  
      if axes is None:
          self.axes = tuple(range(len(self.input_spec.shape) - 1))
      else:
          self.axes = tuple(axes)
  
      assert not only_mean or min_variance == 1e-4
      self.only_mean = only_mean
      self.min_variance = min_variance
  
      self.architecture_kwargs["axes"] = str(self.axes)
      if only_mean:
          self.architecture_kwargs["only_mean"] = str(only_mean)
      self.architecture_kwargs["min_variance"] = str(min_variance)
  
imports: import numpy
  import tensorflow
  from tensorforce import TensorforceError
  from tensorforce.core import parameter_modules, TensorSpec, tf_function, tf_util
  from tensorforce.core.layers import Layer, StatefulLayer
label_desc: Use image node_id 1 to create a new BatchNormalization object from inherited base classes: Layer with example: obj = BatchNormalization()