code: def __init__(self, args):
      super(GCN, self).__init__()
      self.args = args
      self.num_layer = int(self.args["num_layers"])
  
      missing_keys = list(
          set(
              [
                  "features_num",
                  "num_class",
                  "num_layers",
                  "hidden",
                  "dropout",
                  "act",
              ]
          )
          - set(self.args.keys())
      )
      if len(missing_keys) > 0:
          raise Exception("Missing keys: %s." % ",".join(missing_keys))
  
      if not self.num_layer == len(self.args["hidden"]) + 1:
          LOGGER.warn(
              "Warning: layer size does not match the length of hidden units"
          )
      self.convs = torch.nn.ModuleList()
  
      self.convs.append(
          GraphConv(self.args["features_num"], self.args["hidden"][0])
      )
  
      for i in range(self.num_layer - 2):
          self.convs.append(
              GraphConv(
                  self.args["hidden"][i], self.args["hidden"][i + 1]
              )
          )
      self.convs.append(
          GraphConv(self.args["hidden"][-1], self.args["num_class"])
      )
  
imports: import torch
  import torch.nn.functional
  from typing import Sequence, Optional, Union, Tuple
  from numbers import Real
  from dgl.nn.pytorch.conv import GraphConv
  from dgl import remove_self_loop, add_self_loop
  import autogl.data
  from .None import register_model
  from .base import BaseAutoModel, activate_func, ClassificationSupportedSequentialModel
  from ....utils import get_logger
label_desc: Use image node_id 1 to create a new GCN object from inherited base classes: torch.nn with example: obj = GCN(args)