目前,我正在使用 Python 库StellarGraph来实现 GCN。我现在有一种情况,我有带加权边缘的图。不幸的是,StellarGraph 不支持这些图表
我正在寻找用于加权图的图卷积网络的开源实现。我搜索了很多,但大多数情况下他们都假设未加权的图表。是否有用于加权图的 GCN 的开源实现?
目前,我正在使用 Python 库StellarGraph来实现 GCN。我现在有一种情况,我有带加权边缘的图。不幸的是,StellarGraph 不支持这些图表
我正在寻找用于加权图的图卷积网络的开源实现。我搜索了很多,但大多数情况下他们都假设未加权的图表。是否有用于加权图的 GCN 的开源实现?
您可以为您的项目使用Pytorch_Geometric库。它支持加权 GCN。它是一个快速发展的开源库,具有易于使用的语法。Pytorch的登录页面中提到了它。它是几何深度学习中最受关注的 Pytorch github repo。创建一个可以处理具有权重的图的 GCN 模型非常简单:
import torch
import torch.nn.functional as F
from torch_geometric.nn import GCNConv
class Net(torch.nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = GCNConv(dataset.num_node_features, 16)
self.conv2 = GCNConv(16, dataset.num_classes)
def forward(self, data):
# data has the following 3 attributes
x, edge_index, edge_weight = data.x, data.edge_index, data.edge_weight
x = self.conv1(x, edge_index, edge_weight)
x = F.relu(x)
x = F.dropout(x, training=self.training)
x = self.conv2(x, edge_index, edge_weight)
return F.log_softmax(x, dim=1)
请参阅此入门。查看其关于 GCN 不同变体的文档以获取更多详细信息。最好的事情之一是,像 Pytorch 一样,它的文档是自给自足的。
A Comprehensive Survey on Graph Neural Networks (2019) 提供了 ConvGNN 的列表。以下所有都接受加权图,三个也接受具有边权重的图:
以下是上述许多内容的一系列开源实现: