class_docstr: Implementation of "Weight Normalization: A Simple Reparameterization
  to Accelerate Training of Deep Neural Networks"
  :cite:`DBLP:journals/corr/SalimansK16`
  
  As a reparameterization method, weight normalization is same
  as BatchNormalization, but it doesn't depend on minibatch.
  
  NOTE: This is used nowhere in the code at this stage
        Vincent Nguyen 05/18/2018
class_docstr_tok: ["Implementation","of","``","Weight","Normalization",":","A","Simple","Reparameterization","to","Accelerate","Training","of","Deep","Neural","Networks","''",":","cite",":","`","DBLP",":","journals\/corr\/SalimansK16","`","As","a","reparameterization","method",",","weight","normalization","is","same","as","BatchNormalization",",","but","it","does","n't","depend","on","minibatch",".","NOTE",":","This","is","used","nowhere","in","the","code","at","this","stage","Vincent","Nguyen","05\/18\/2018"]
code: def __init__(
      self,
      in_features,
      out_features,
      init_scale=1.0,
      polyak_decay=0.9995,
  ):
      super(WeightNormLinear, self).__init__(
          in_features, out_features, bias=True
      )
  
      self.V = self.weight
      self.g = Parameter(torch.Tensor(out_features))
      self.b = self.bias
  
      self.register_buffer(
          "V_avg", torch.zeros(out_features, in_features)
      )
      self.register_buffer("g_avg", torch.zeros(out_features))
      self.register_buffer("b_avg", torch.zeros(out_features))
  
      self.init_scale = init_scale
      self.polyak_decay = polyak_decay
      self.reset_parameters()
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn import Parameter
label_desc: Use image node_id 1 to create a new WeightNormLinear object from inherited base classes: nn with example: obj = WeightNormLinear(in_features, out_features, init_scale, polyak_decay)