图神经网络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 net
        w = 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 net
        c = 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 tensor
        wc = torch.cat((w, c), 1)
        return self.classify(wc)
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值