code: def __init__(
      self,
      conv,
      flow,
      dims,
      fanouts,
      metapath,
      feature_idx,
      feature_dim,
      head_num=4,
      concat=True,
      improved=True,
      add_self_loops=False,
  ):
      self.head_num = head_num
      self.concat = concat
      self.improved = improved
      super(GNN, self).__init__(
          conv=conv,
          flow=flow,
          dims=dims,
          fanouts=fanouts,
          metapath=metapath,
          add_self_loops=add_self_loops,
      )
      if not isinstance(feature_idx, list):
          feature_idx = [feature_idx]
      if not isinstance(feature_dim, list):
          feature_dim = [feature_dim]
      self.feature_idx = feature_idx
      self.feature_dim = feature_dim
  
file_path: euler/examples/gat/gat.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import tensorflow
  import tf_euler
  from tf_euler.python.convolution import GATConv
  from tf_euler.python.mp_utils.base_gnn import BaseGNNNet
  from tf_euler.python.mp_utils.base import SuperviseModel
label_desc: Use image node_id 1 to create a new GNN object from inherited base classes: BaseGNNNet with example: obj = GNN(conv, flow, dims, fanouts, metapath, feature_idx, feature_dim, head_num, concat, improved, add__loops)