code: def xavier_init(fan_in, fan_out, const=1):
      
      low = -const * np.sqrt(6.0 / (fan_in + fan_out))
      high = const * np.sqrt(6.0 / (fan_in + fan_out))
      return tf.random_uniform((fan_in, fan_out), minval=low, maxval=high)
docs: Xavier initialization of network weights.
  
      https://stackoverflow.com/questions/33640581/how-to-do-xavier-initialization-on-tensorflow
  
      :param fan_in: fan in of the network (n_features)
      :param fan_out: fan out of the network (n_components)
      :param const: multiplicative constant