GraphConv 与 GCNConv pytorch.geometric

问题描述 投票:0回答:2

我正在尝试比较我的项目的 2 个模型 GraphConv 和 GCNConv。根据 pytorch 提供的教程,GraphConv 通过省略邻域标准化来保留中心节点信息。该教程显示,在 GCNConv 模型的情况下,GraphConv 将测试准确率从 76% 提高到了 82%。然而,在我的例子中,GraphConv 将训练准确率从 89%(GCNConv)提高到 93%,但测试准确率没有变化,即 88%(与 GraphConv 和 GCNConv 类似)。我保持其余参数相同,那么原因可能是什么?有什么办法可以提高测试的准确性吗?谢谢,下面是我提到的 pytorch 教程的链接。

https://colab.research.google.com/drive/1I8a0DfQ3fI7Njc62__mVXUlcAleUclnb?usp=sharing#scrollTo=ecJCNRmT2RsF

我尝试比较 GraphConv 和 GCNConv,GraphConv 应该在测试准确性上给我更好的结果,但事实并非如此。

pytorch-geometric graph-neural-network
2个回答
0
投票

您能分享一下 GraphConv 的代码吗?由于代码的随机部分可以改变输出,我认为运行几次(如果您的代码工作正确)可能会显示略有不同的结果,例如,检查我的网络架构,

    self.conv1 = GraphConv(dataset.num_node_features, hidden_channels)
    self.conv2 = GraphConv(hidden_channels, hidden_channels)
    self.conv3 = GraphConv(hidden_channels, hidden_channels)
    self.lin = Linear(hidden_channels, dataset.num_classes)

这将产生约 84% 的测试准确度,正如您在示例运行中所看到的:

Epoch: 189, Train Acc: 0.8600, Test Acc: 0.7368
Epoch: 190, Train Acc: 0.9333, Test Acc: 0.7895
Epoch: 191, Train Acc: 0.9133, Test Acc: 0.7895
Epoch: 192, Train Acc: 0.9333, Test Acc: 0.7895
Epoch: 193, Train Acc: 0.9333, Test Acc: 0.7895
Epoch: 194, Train Acc: 0.9333, Test Acc: 0.7895
Epoch: 195, Train Acc: 0.9333, Test Acc: 0.8158
Epoch: 196, Train Acc: 0.9133, Test Acc: 0.7895
Epoch: 197, Train Acc: 0.9467, Test Acc: 0.8158
Epoch: 198, Train Acc: 0.9467, Test Acc: 0.8158
Epoch: 199, Train Acc: 0.9333, Test Acc: 0.7895
Epoch: 200, Train Acc: 0.9333, Test Acc: 0.8421

0
投票

我想使用graphSAGE来查找异常节点。我想对我的图表使用边权重,但使用 PYG 几何库的 graphSAGE 不支持该边权重。如果我使用 GraphConv 而不是 SageConv,它支持输入图的边权重,那么 GraphConv 的功能与 SageConv 类似吗?

© www.soinside.com 2019 - 2024. All rights reserved.