text: import math
  
  
  def uniform(size, tensor):
      bound = 1.0 / math.sqrt(size)
      if tensor is not None:
          tensor.data.uniform_(-bound, bound)
  
  
  def kaiming_uniform(tensor, fan, a):
      bound = math.sqrt(6 / ((1 + a**2) * fan))
      if tensor is not None:
          tensor.data.uniform_(-bound, bound)
  
  
  def glorot(tensor):
      stdv = math.sqrt(6.0 / (tensor.size(-2) + tensor.size(-1)))
      if tensor is not None:
          tensor.data.uniform_(-stdv, stdv)
  
  
  def zeros(tensor):
      if tensor is not None:
          tensor.data.fill_(0)
  
  
  def ones(tensor):
      if tensor is not None:
          tensor.data.fill_(1)
  
  
  def reset(nn):
      def _reset(item):
          if hasattr(item, 'reset_parameters'):
              item.reset_parameters()
  
      if nn is not None:
          if hasattr(nn, 'children') and len(list(nn.children())) > 0:
              for item in nn.children():
                  _reset(item)
          else:
              _reset(nn)
  