GDC
- class dgl.transforms.GDC(coefs, eweight_name='w', eps=None, avg_degree=5)[源码]
基类:
BaseTransform
应用图扩散卷积 (GDC) 到输入图,如 Diffusion Improves Graph Learning 中介绍的。
扩散后将对加权邻接矩阵进行稀疏化。具体来说,权重低于阈值的边将被丢弃。
此模块仅适用于同构图。
- 参数:
coefs (list[float], optional) – 系数列表。邻接矩阵每个幂次的 \(\theta_k\)。
eweight_name (str, optional) – 用于检索和存储边权重的
edata
名称。如果输入图中不存在,此模块将为所有边初始化权重为 1。边权重应为形状为 \((E)\) 的张量,其中 E 是边的数量。eps (float, optional) – 扩散后稀疏化中保留边的阈值。权重小于 eps 的边将被丢弃。
avg_degree (int, optional) – 结果图的期望平均节点度数。这是控制结果图稀疏性的另一种方法,仅在未提供
eps
时有效。
示例
>>> import dgl >>> import torch >>> from dgl import GDC
>>> transform = GDC([0.3, 0.2, 0.1], avg_degree=2) >>> g = dgl.graph(([0, 1, 2, 3, 4], [2, 3, 4, 5, 3])) >>> g.edata['w'] = torch.tensor([0.1, 0.2, 0.3, 0.4, 0.5]) >>> new_g = transform(g) >>> print(new_g.edata['w']) tensor([0.3000, 0.3000, 0.0200, 0.3000, 0.0400, 0.3000, 0.1000, 0.0600, 0.3000, 0.0800, 0.0200, 0.3000])