code: def linear(input, hidden_size, name, with_bias=True, init_type="gcn"):
      """fluid.layers.fc with different init_type"""
  
      if init_type == "gcn":
          fc_w_attr = F.ParamAttr(
              initializer=F.initializer.XavierInitializer()
          )
          fc_bias_attr = F.ParamAttr(
              initializer=F.initializer.ConstantInitializer(0.0)
          )
      else:
          fan_in = input.shape[-1]
          bias_bound = 1.0 / math.sqrt(fan_in)
          fc_bias_attr = F.ParamAttr(
              initializer=F.initializer.UniformInitializer(
                  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 = F.ParamAttr(
              initializer=F.initializer.UniformInitializer(
                  low=-weight_bound, high=weight_bound
              )
          )
  
      if not with_bias:
          fc_bias_attr = False
  
      output = L.fc(
          input,
          hidden_size,
          param_attr=fc_w_attr,
          name=name,
          bias_attr=fc_bias_attr,
      )
      return output
  
file_path: PGL/ogb_examples/nodeproppred/unimp/module/model_unimp_large.py
imports: import pgl
  import paddle.fluid
  import paddle.fluid.layers
  from pgl.utils import paddle_helper
  from pgl import message_passing
  import math
label_desc: Use image node_id 4 for calling a global function with example usage: linear(input, hidden_size, name, with_bias, init_type) and returns: output