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/