class_docstr: Graph Convolutional Encoder
  GcEncoder take as input an :math:`N \times D` feature matrix :math:`X` and a graph adjacency matrix :math:`A`,
  and produce an :math:`N \times E` node embedding matrix;
  Note that :math:`N` denotes the number of nodes, :math:`D` the number of input features,
  and :math:`E` the embedding size.
class_docstr_tok: ["Graph","Convolutional","Encoder","GcEncoder","take","as","input","an",":","math",":","`","N","\\times","D","`","feature","matrix",":","math",":","`","X","`","and","a","graph","adjacency","matrix",":","math",":","`","A","`",",","and","produce","an",":","math",":","`","N","\\times","E","`","node","embedding","matrix",";","Note","that",":","math",":","`","N","`","denotes","the","number","of","nodes",",",":","math",":","`","D","`","the","number","of","input","features",",","and",":","math",":","`","E","`","the","embedding","size","."]
code: def _init_weights(self):
      init_range = math.sqrt(
          (self.num_support + 1)
          / (self.input_dim + self.gcn_output_dim)
      )
      for w in range(self.num_support):
          self.weights_u[w].data.uniform_(-init_range, init_range)
      if not self.share_weights:
          for w in range(self.num_support):
              self.weights_v[w].data.uniform_(-init_range, init_range)
  
      dense_init_range = math.sqrt(
          (self.num_support + 1)
          / (self.dense_output_dim + self.gcn_output_dim)
      )
      self.dense_layer_u.weight.data.uniform_(
          -dense_init_range, dense_init_range
      )
      if not self.share_weights:
          self.dense_layer_v.weight.data.uniform_(
              -dense_init_range, dense_init_range
          )
  
      if self.bias:
          self.dense_layer_u.bias.data.fill_(0)
          if not self.share_weights:
              self.dense_layer_v.bias.data.fill_(0)
  
imports: import math
  import numpy
  import scipy.sparse
  import torch
  import torch.nn
  from recbole.model.abstract_recommender import GeneralRecommender
  from recbole.model.layers import SparseDropout
  from recbole.utils import InputType
label_desc: Use image node_id 2 for calling the GcEncoder obj's underlying member method code with example usage: obj._init_weights() without return types