本文主要是介绍图神经网络DGL框架,graph classification,多个且不同维度的node feature 训练,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
node feature 维度不同
我现在有许多不同的图要加入训练,每个图的节点特征维度不同,第一张图n_weight特征有10条数据,第二张图n_weight特征有15条数据,但是训练的时候,需要维度都对其,所以直接做0 padding ,把小于15条数据的全部后面填充0,再加入训练
多个node features
我的节点有n_weight和n_community两个特征,都要加入训练
forward 程序中,cat n_weight和n_community两个特征,如果有很多个特征,写循环
class GraphClassifier(nn.Module):def __init__(self, in_dim, hidden_dim, n_classes):super(GraphClassifier, self).__init__()self.conv1 = GraphConv(in_dim, hidden_dim)self.conv2 = GraphConv(hidden_dim, hidden_dim)# flatten into linear so we can crossentropy/ softmax it.self.classify = nn.Linear(hidden_dim, n_classes)def forward(self, g):# run the weight feature through the netw = g.ndata['n_weight']w = F.relu(self.conv1(g, w))w = F.relu(self.conv2(g, w))g.ndata['n_weight'] = w# run the community feature through the netc = g.ndata['n_community']c = F.relu(self.conv1(g, c))c = F.relu(self.conv1(g, c))g.ndata['n_community'] = c# combine both features into one tensorwc = torch.cat((w, c), 1)return self.classify(wc)
这篇关于图神经网络DGL框架,graph classification,多个且不同维度的node feature 训练的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!