torch_geometric.datasets.ExplainerDataset

class ExplainerDataset(graph_generator: Union[GraphGenerator, str], motif_generator: Union[MotifGenerator, str], num_motifs: int, num_graphs: int = 1, graph_generator_kwargs: Optional[Dict[str, Any]] = None, motif_generator_kwargs: Optional[Dict[str, Any]] = None, transform: Optional[Callable] = None)[source]

Bases: InMemoryDataset

生成一个用于评估可解释性算法的合成数据集, 如“GNNExplainer: Generating Explanations for Graph Neural Networks”论文中所述。 ExplainerDataset创建来自 GraphGenerator的合成图, 并随机将num_motifs多个来自 MotifGenerator的图案附加到图上。 根据节点和边是否属于某个图案,提供了真实节点级和边级的可解释性掩码。

例如,要生成一个包含300个节点的随机Barabasi-Albert (BA)图,其中我们希望随机附加80个"house"主题,可以编写如下代码:

from torch_geometric.datasets import ExplainerDataset
from torch_geometric.datasets.graph_generator import BAGraph

dataset = ExplainerDataset(
    graph_generator=BAGraph(num_nodes=300, num_edges=5),
    motif_generator='house',
    num_motifs=80,
)

注意

有关使用 ExplainerDataset 的示例,请参见 examples/explain/gnn_explainer_ba_shapes.py

Parameters:
  • graph_generator (GraphGeneratorstr) – 要使用的图生成器,例如torch.geometric.datasets.graph_generator.BAGraph (或任何自动解析为它的字符串)。

  • motif_generator (MotifGenerator) – 要使用的motif生成器, 例如torch_geometric.datasets.motif_generator.HouseMotif (或任何自动解析为它的字符串)。

  • num_motifs (int) – 要附加到图上的主题数量。

  • num_graphs (int, optional) – 要生成的图的数量。 (默认: 1)

  • graph_generator_kwargs (Dict[str, Any], optional) – 传递给相应图形生成器模块的参数,以防它被自动解析。(默认值:None

  • motif_generator_kwargs (Dict[str, Any], optional) – 传递给相应 motif 生成器模块的参数,以防它被自动解析。(默认值:None

  • transform (callable, optional) – A function/transform that takes in an torch_geometric.data.Data object and returns a transformed version. The data object will be transformed before every access. (default: None)