TAGConv
- class dgl.nn.pytorch.conv.TAGConv(in_feats, out_feats, k=2, bias=True, activation=None)[source]
基类:
Module
来自 Topology Adaptive Graph Convolutional Networks 的拓扑自适应图卷积层
\[H^{K} = {\sum}_{k=0}^K (D^{-1/2} A D^{-1/2})^{k} X {\Theta}_{k},\]其中 \(A\) 表示邻接矩阵,\(D_{ii} = \sum_{j=0} A_{ij}\) 表示其对角度的矩阵,\({\Theta}_{k}\) 表示用于将不同跳数的结果相加的线性权重。
- 参数:
- lin
可学习的线性模块。
- 类型:
torch.Module
示例
>>> import dgl >>> import numpy as np >>> import torch as th >>> from dgl.nn import TAGConv >>> >>> g = dgl.graph(([0,1,2,3,2,5], [1,2,3,4,0,3])) >>> feat = th.ones(6, 10) >>> conv = TAGConv(10, 2, k=2) >>> res = conv(g, feat) >>> res tensor([[ 0.5490, -1.6373], [ 0.5490, -1.6373], [ 0.5490, -1.6373], [ 0.5513, -1.8208], [ 0.5215, -1.6044], [ 0.3304, -1.9927]], grad_fn=<AddmmBackward>)
- forward(graph, feat, edge_weight=None)[source]
描述
计算拓扑自适应图卷积。
- 参数 graph:
图。
- 类型 graph:
DGLGraph
- 参数 feat:
形状为 \((N, D_{in})\) 的输入特征,其中 \(D_{in}\) 是输入特征的大小,\(N\) 是节点数。
- 类型 feat:
torch.Tensor
- 参数 edge_weight:
在消息传递过程中使用的 edge_weight。这等价于在上述公式中使用加权邻接矩阵,并且 \(\tilde{D}^{-1/2}\tilde{A} \tilde{D}^{-1/2}\) 基于
dgl.nn.pytorch.conv.graphconv.EdgeWeightNorm
。- 类型 edge_weight:
torch.Tensor, optional
- 返回:
形状为 \((N, D_{out})\) 的输出特征,其中 \(D_{out}\) 是输出特征的大小。
- 返回类型:
torch.Tensor