目录

Jittor GCN Cora 节点分类

本项目基于 Jittor 和 JittorGeometric 实现两层图卷积网络(GCN),用于 Cora 引文网络的节点分类任务。

代码包含数据加载、特征归一化、GCN 模型训练、验证集评估,以及测试节点预测结果导出流程。

项目结构

.
├── src/
│   └── gcn.py          # GCN 训练、验证与预测脚本
├── data/
│   └── README.md       # 数据说明;cora.pkl 不上传
├── outputs/            # 运行生成的结果目录,不上传
├── requirements.txt    # Python 依赖
├── .gitignore
├── LICENSE
└── README.md

环境安装

建议使用 Python 3.8 或更高版本。

pip install -r requirements.txt

Jittor 与 JittorGeometric 的安装请参考官方说明:

本代码默认启用 CUDA。若没有 NVIDIA GPU 或 CUDA 环境,请根据本机环境修改 src/gcn.py 中的 jt.flags.use_cuda 配置。

数据准备

从比赛平台下载 cora.pkl,并放置为:

data/cora.pkl

数据文件不包含在本仓库中。

数据包含以下主要字段:

字段 说明
x 节点特征矩阵,形状为 (2708, 1433)
y 节点标签;测试集节点标签为 -1
edge_index 图的边索引,形状为 (2, num_edges)
train_mask 训练集节点掩码
val_mask 验证集节点掩码
test_mask 测试集节点掩码
num_classes 类别数,数值为 7
num_features 特征维度,数值为 1433

训练与验证

在项目根目录运行:

python src/gcn.py

脚本固定随机种子为 42,默认训练 200 个 epoch,并每 20 个 epoch 输出训练集准确率和当前最佳验证集准确率。

推理结果

训练结束后,脚本会预测测试节点的类别,并输出:

outputs/result.json

该文件使用 JSON 格式保存,键为测试节点编号,值为预测类别。

模型配置

  • 模型:两层 GCN
  • 隐藏层维度:256
  • Dropout:0.8
  • 优化器:Adam
  • 学习率:0.01
  • 权重衰减:5e-4
  • 训练轮数:200
  • 随机种子:42

结果说明

训练过程中以验证集准确率(Validation Accuracy)作为主要指标。由于测试集标签在 cora.pkl 中为 -1,本地不能计算测试集准确率,仅生成测试节点的预测结果。

第三方资源

  • Jittor:深度学习框架。
  • JittorGeometric:图神经网络工具库。
  • Cora 数据集:由比赛平台提供。

使用本项目时,请遵守比赛规则、数据集许可和第三方项目许可证。

关于
34.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号