class_docstr: Xavier Glorot parameter initialization method based
  on uniform distribution.
  
  Parameters
  ----------
  {InitializerWithGain.Parameters}
  
  Methods
  -------
  {Initializer.Methods}
  
  References
  ----------
  [1] Xavier Glorot, Y Bengio. Understanding the difficulty
      of training deep feedforward neural networks, 2010.
class_docstr_tok: ["Xavier","Glorot","parameter","initialization","method","based","on","uniform","distribution",".","Parameters","--","--","--","--","--","{","InitializerWithGain.Parameters","}","Methods","--","--","--","-","{","Initializer.Methods","}","References","--","--","--","--","--","[","1","]","Xavier","Glorot",",","Y","Bengio",".","Understanding","the","difficulty","of","training","deep","feedforward","neural","networks",",","2010","."]
code: def sample(self, shape, return_array=False):
      fan_in, fan_out = identify_fans(shape)
      variance = 3.0 / (fan_in + fan_out)
      abs_max_value = np.sqrt(self.gain * variance)
  
      uniform = Uniform(
          minval=-abs_max_value,
          maxval=abs_max_value,
          seed=self.seed,
      )
      return uniform.sample(shape, return_array)
  
imports: import abc
  import six
  import numpy
  import tensorflow
  from neupy.core.docs import SharedDocsABCMeta
label_desc: Use image node_id 1 for calling the XavierUniform obj's underlying member method code with example usage: obj.sample(shape, return_array) and returns: uniform