LapPosEncoder
class dgl.nn.pytorch.gt.LapPosEncoder(model_type, num_layer, k, dim, n_head=1, batch_norm=False, num_post_layer=0)
Do Transformers Really Perform Bad for Graph Representation中介绍的Laplacian Positional Encoder(LPE)
该模块是使用Transformer或DeepSet的学习拉普拉斯位置编码模块。
Parameters
- model_type(str) - LPE的编码器模型类型,只能是“Transformer”或“DeepSet”。
 - num_layer(int) - Transformer/DeepSet编码器中的层数。
 - k(int) - 最小非平凡特征向量的个数。
 - dim(int) - 最终拉普拉斯编码的输出大小。
 - n_head(int,optional) - Transformer编码器中的头数。预设值:1。
 - batch_norm (bool, optional) - 如果为True,则对原始拉普拉斯位置编码应用批量归一化。默认值:False。
 - num_post_layer (int, optional) - 如果num_post_layer > 0,则在池化之后应用num_post_layer层的MLP。默认值:0。
 
forward(eigvals, eigvecs)
Parameters
    - eigvals(Tensor)-形状为(N,k),k 不同的拉普拉斯特征值 特征值重复N次,可以通过使用LaplacianPE获得。
    - eigvecs (Tensor) – 形状为(N,k)的拉普拉斯特征向量,可以通过以下方式获得: 使用LaplacianPE。
Returns
    返回形状(N,d)的拉普拉斯位置编码, 其中N是输入图中的节点数,d是dim。
Return type
    torch.Tensor
源代码
1  |  | 
Example
Example1:
1  |  | 
LapPosEncoder
      http://jiqingjiang.github.io/p/dc2703a/