class_docstr: An abstract base class for implementing explainer algorithms.
docstr: Computes the explanation.
  
  Args:
      model (torch.nn.Module): The model to explain.
      x (Union[torch.Tensor, Dict[NodeType, torch.Tensor]]): The input
          node features of a homogeneous or heterogeneous graph.
      edge_index (Union[torch.Tensor, Dict[NodeType, torch.Tensor]]): The
          input edge indices of a homogeneous or heterogeneous graph.
      target (torch.Tensor): The target of the model.
      index (Union[int, Tensor], optional): The index of the model
          output to explain. Can be a single index or a tensor of
          indices. (default: :obj:`None`)
      **kwargs (optional): Additional keyword arguments passed to
          :obj:`model`.
docstr_tok: ["Computes","the","explanation",".","Args",":","model","(","torch.nn.Module",")",":","The","model","to","explain",".","x","(","Union","[","torch.Tensor",",","Dict","[","NodeType",",","torch.Tensor","]","]",")",":","The","input","node","features","of","a","homogeneous","or","heterogeneous","graph",".","edge_index","(","Union","[","torch.Tensor",",","Dict","[","NodeType",",","torch.Tensor","]","]",")",":","The","input","edge","indices","of","a","homogeneous","or","heterogeneous","graph",".","target","(","torch.Tensor",")",":","The","target","of","the","model",".","index","(","Union","[","int",",","Tensor","]",",","optional",")",":","The","index","of","the","model","output","to","explain",".","Can","be","a","single","index","or","a","tensor","of","indices",".","(","default",":",":","obj",":","`","None","`",")","*","*","kwargs","(","optional",")",":","Additional","keyword","arguments","passed","to",":","obj",":","`","model","`","."]
code: def forward(
      self,
      model: torch.nn.Module,
      x: Union[Tensor, Dict[NodeType, Tensor]],
      edge_index: Union[Tensor, Dict[EdgeType, Tensor]],
      *,
      target: Tensor,
      index: Optional[Union[int, Tensor]] = None,
      **kwargs,
  ) -> Union[Explanation, HeteroExplanation]:
      r"""Computes the explanation.
  
      Args:
          model (torch.nn.Module): The model to explain.
          x (Union[torch.Tensor, Dict[NodeType, torch.Tensor]]): The input
              node features of a homogeneous or heterogeneous graph.
          edge_index (Union[torch.Tensor, Dict[NodeType, torch.Tensor]]): The
              input edge indices of a homogeneous or heterogeneous graph.
          target (torch.Tensor): The target of the model.
          index (Union[int, Tensor], optional): The index of the model
              output to explain. Can be a single index or a tensor of
              indices. (default: :obj:`None`)
          **kwargs (optional): Additional keyword arguments passed to
              :obj:`model`.
      """
  
imports: from abc import abstractmethod
  from typing import Dict, Optional, Tuple, Union
  import torch
  import torch.nn.functional
  from torch import Tensor
  from torch_geometric.explain import Explanation, HeteroExplanation
  from torch_geometric.explain.config import ExplainerConfig, ModelConfig, ModelReturnType
  from torch_geometric.nn import MessagePassing
  from torch_geometric.typing import EdgeType, NodeType
  from torch_geometric.utils import k_hop_subgraph
label_desc: Use image node_id 1 for calling the ExplainerAlgorithm obj's underlying member method code with example usage: obj.forward(model, x, edge_index) without return types