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 (GraphGenerator 或 str) – 要使用的图生成器,例如,
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.Dataobject and returns a transformed version. The data object will be transformed before every access. (default:None)