torch_geometric.explain.algorithm.GNNExplainer
- class GNNExplainer(epochs: int = 100, lr: float = 0.01, **kwargs)[source]
Bases:
ExplainerAlgorithm
The GNN-Explainer model from the “GNNExplainer: Generating Explanations for Graph Neural Networks” paper for identifying compact subgraph structures and node features that play a crucial role in the predictions made by a GNN.
Note
For an example of using
GNNExplainer
, see examples/explain/gnn_explainer.py, examples/explain/gnn_explainer_ba_shapes.py, and examples/explain/ gnn_explainer_link_pred.py.Note
The
edge_size
coefficient is multiplied by the number of nodes in the explanation at every iteration, and the resulting value is added to the loss as a regularization term, with the goal of producing compact explanations. A higher value will push the algorithm towards explanations with less elements. Consider adjusting theedge_size
coefficient according to the average node degree in the dataset, especially if this value is bigger than in the datasets used in the original paper.- Parameters:
- forward(model: Module, x: Tensor, edge_index: Tensor, *, target: Tensor, index: Optional[Union[int, Tensor]] = None, **kwargs) Explanation [source]
Computes the explanation.
- Parameters:
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:
None
)**kwargs (optional) – Additional keyword arguments passed to
model
.
- Return type: