code: def forward(self, g_arr, feat):
      for g, layer in zip(g_arr, self.layers):
          feat = (
              self.pool(
                  layer(g, feat, [2] * g.batch_size)
                  .transpose(-1, -2)
                  .unsqueeze(0)
              )
              .squeeze(0)
              .transpose(-1, -2)
          )
      return self.cls(self.readout(g_arr[-1], feat))
  
imports: import argparse
  import time
  import dgl
  import networkx
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from coarsening import coarsen
  from coordinate import get_coordinates, z2polar
  from dgl.data import load_data, register_data_args
  from dgl.nn.pytorch.conv import ChebConv, GMMConv
  from dgl.nn.pytorch.glob import MaxPooling
  from grid_graph import grid_graph
  from torch.utils.data import DataLoader
  from torchvision import datasets, transforms
label_desc: Use image node_id 2 for calling the ChebNet obj's underlying member method code with example usage: obj.forward(g_arr, feat) and returns: self