code: def calculate_conv(
      self, conv, inputs, edge_index, size=None, **kwargs
  ):
      out = tf.concat(
          [
              single_conv(inputs, edge_index, size=size)
              for single_conv in conv
          ],
          axis=1,
      )
      if self.concat:
          return out
      else:
          out = tf.reshape(out, [-1, self.dim, self.head_num])
          return tf.reduce_mean(out, 1)
  
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 4 for calling the GNN obj's underlying member method code with example usage: obj.calculate_conv(conv, inputs, edge_index, size) and returns: out, tf