code: def linear_init(
      input_size, hidden_size, with_bias=True, init_type="gcn"
  ):
      if init_type == "gcn":
          fc_w_attr = paddle.ParamAttr(
              initializer=nn.initializer.XavierNormal()
          )
          fc_bias_attr = paddle.ParamAttr(
              initializer=nn.initializer.Constant(0.0)
          )
      else:
          fan_in = input_size
          bias_bound = 1.0 / math.sqrt(fan_in)
          fc_bias_attr = paddle.ParamAttr(
              initializer=nn.initializer.Uniform(
                  low=-bias_bound, high=bias_bound
              )
          )
  
          negative_slope = math.sqrt(5)
          gain = math.sqrt(2.0 / (1 + negative_slope**2))
          std = gain / math.sqrt(fan_in)
          weight_bound = math.sqrt(3.0) * std
          fc_w_attr = paddle.ParamAttr(
              initializer=nn.initializer.Uniform(
                  low=-weight_bound, high=weight_bound
              )
          )
  
      if not with_bias:
          fc_bias_attr = False
  
      return nn.Linear(
          input_size,
          hidden_size,
          weight_attr=fc_w_attr,
          bias_attr=fc_bias_attr,
      )
  
imports: import math
  import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  import pgl
  from pgl.nn import functional
label_desc: Use image node_id 1 for calling a global function with example usage: linear_init(input_size, hidden_size, with_bias, init_type) and returns: nn