code: def call(self, inputs):
      x, a, i = inputs
      x = self.conv1([x, a])
      for conv in self.convs:
          x = conv([x, a])
      x = self.pool([x, i])
      x = self.dense1(x)
      x = self.dropout(x)
      return self.dense2(x)
  
file_path: spektral/examples/graph_prediction/tud_gin.py
imports: import numpy
  import tensorflow
  from tensorflow.keras.layers import Dense, Dropout
  from tensorflow.keras.losses import CategoricalCrossentropy
  from tensorflow.keras.metrics import categorical_accuracy
  from tensorflow.keras.models import Model
  from tensorflow.keras.optimizers import Adam
  from spektral.data import DisjointLoader
  from spektral.datasets import TUDataset
  from spektral.layers import GINConv, GlobalAvgPool
label_desc: Use image node_id 2 for calling the GIN0 obj's underlying member method code with example usage: obj.call(inputs) and returns: self