DenseSAGEConv
- class dgl.nn.pytorch.conv.DenseSAGEConv(in_feats, out_feats, feat_drop=0.0, bias=True, norm=None, activation=None)[source]
基类:
Module
来自论文 Inductive Representation Learning on Large Graphs 的 GraphSAGE 层
建议在稠密图上应用 GraphSAGE 时使用此模块。
注意,DenseSAGEConv 中只支持 gcn 聚合器。
- 参数:
in_feats (int) – 输入特征大小;即 \(h_i^{(l)}\) 的维度数。
out_feats (int) – 输出特征大小;即 \(h_i^{(l+1)}\) 的维度数。
feat_drop (float, 可选) – 特征的 Dropout 率。默认值:0。
bias (bool) – 如果为 True,则向输出添加一个可学习的偏置。默认值:
True
。norm (可调用的激活函数/层 或 None, 可选) – 如果不是 None,则对更新后的节点特征应用归一化。
activation (可调用的激活函数/层 或 None, 可选) – 如果不是 None,则对更新后的节点特征应用激活函数。默认值:
None
。
示例
>>> import dgl >>> import numpy as np >>> import torch as th >>> from dgl.nn import DenseSAGEConv >>> >>> feat = th.ones(6, 10) >>> adj = th.tensor([[0., 0., 1., 0., 0., 0.], ... [1., 0., 0., 0., 0., 0.], ... [0., 1., 0., 0., 0., 0.], ... [0., 0., 1., 0., 0., 1.], ... [0., 0., 0., 1., 0., 0.], ... [0., 0., 0., 0., 0., 0.]]) >>> conv = DenseSAGEConv(10, 2) >>> res = conv(adj, feat) >>> res tensor([[1.0401, 2.1008], [1.0401, 2.1008], [1.0401, 2.1008], [1.0401, 2.1008], [1.0401, 2.1008], [1.0401, 2.1008]], grad_fn=<AddmmBackward>)
另请参阅
- forward(adj, feat)[source]
描述
计算(稠密)图 SAGE 层。
- 参数 adj:
要应用 SAGE 卷积的图的邻接矩阵,当应用于单向二分图时,
adj
的形状应为 \((N_{out}, N_{in})\);当应用于同构图时,adj
的形状应为 \((N, N)\)。在这两种情况下,行代表目标节点,列代表源节点。- 类型 adj:
torch.Tensor
- 参数 feat:
如果给定一个 torch.Tensor,则是形状为 \((N, D_{in})\) 的输入特征,其中 \(D_{in}\) 是输入特征的大小,\(N\) 是节点数。如果给定一对 torch.Tensor,这对张量必须包含两个形状分别为 \((N_{in}, D_{in})\) 和 \((N_{out}, D_{in})\) 的张量。
- 类型 feat:
torch.Tensor 或 一对 torch.Tensor
- 返回:
形状为 \((N, D_{out})\) 的输出特征,其中 \(D_{out}\) 是输出特征的大小。
- 返回类型:
torch.Tensor