code: def xavier_normal(
      shape: Tuple[int, ...], gain: float = 1
  ) -> JaxArray:
      """Returns a tensor with values assigned using Xavier Glorot normal initializer from
      `Understanding the difficulty of training deep feedforward neural networks
      <http://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf>`_.
  
      Args:
          shape: shape of the output tensor.
          gain: optional scaling factor.
  
      Returns:
          Tensor initialized with normal random variables with standard deviation (gain * xavier_normal_gain).
      """
      return random.normal(
          shape, stddev=gain * xavier_normal_gain(shape)
      )
  
file_path: objax/objax/nn/init.py
imports: from typing import Tuple
  import numpy
  import scipy.stats
  from jax import numpy
  from objax import random
  from objax.typing import JaxArray
label_desc: Use image node_id 7 for calling a global function with example usage: xavier_normal(shape, gain) and returns: random