code: def forward(self, data):
      output = bk_feat(data)
      # output, edge_index_all = data.x, data.edge_index  # x [2708,1433] ,[2, 10556]
      if self.residual:
          for i, (act, layer, fc) in enumerate(
              zip(self.acts, self.layers, self.fcs)
          ):
              output = F.dropout(
                  output, p=self.dropout, training=self.training
              )
              if self.batch_normal:
                  output = self.bns[i](output)
  
              # output = act(layer(output, edge_index_all) + fc(output))
              output = act(bk_gconv(layer, data, output) + fc(output))
      else:
          for i, (act, layer) in enumerate(zip(self.acts, self.layers)):
              output = F.dropout(
                  output, p=self.dropout, training=self.training
              )
              if self.batch_normal:
                  output = self.bns[i](output)
              # output = act(layer(output, edge_index_all))
              output = act(bk_gconv(layer, data, output))
  
      if not self.multi_label:
          output = F.log_softmax(output, dim=1)
      return output
  
imports: import torch
  import typing
  import torch.nn
  import torch.nn.functional
  from .None import register_nas_space
  from .base import BaseSpace, map_nn
  from ...model import BaseAutoModel
  from .operation import act_map
  from ..utils import count_parameters, measure_latency
  from ..backend import *
  from operator import *
  from .operation import *
label_desc: Use image node_id 4 for calling the GraphNet obj's underlying member method code with example usage: obj.forward(data) and returns: output