code: def forward(
      self, x, edge_index, edge_weight=None, batch=None, **kwargs
  ):
      x = self.conv1(x, edge_index, edge_weight).relu()
      x = self.conv2(x, edge_index, edge_weight).relu()
  
      if self.model_config.task_level.value == "graph":
          x = global_add_pool(x, batch)
  
      if self.model_config.mode.value == "binary_classification":
          x = x.sigmoid()
      elif self.model_config.mode.value == "multiclass_classification":
          x = x.log_softmax(dim=-1)
  
      return x
  
file_path: pytorch_geometric/test/contrib/explain/test_pgm_explainer.py
imports: import pytest
  import torch
  from torch_geometric.contrib.explain import PGMExplainer
  from torch_geometric.explain import Explainer
  from torch_geometric.explain.config import ModelConfig
  from torch_geometric.nn import GCNConv, global_add_pool
  from torch_geometric.testing import withPackage
label_desc: Use image node_id 2 for calling the GCN obj's underlying member method code with example usage: obj.forward(x, edge_index, edge_weight, batch) and returns: x