目录

Cora GCN 节点分类

本项目使用 Jittor 和 JittorGeometric 实现两层 GCN,完成 Cora 数据集的节点分类、 验证集评测及测试集预测。训练会自动保存最佳验证集模型,而不是使用最后一轮模型生成结果。

环境安装

通过environment.yml创建环境并安装依赖(python3.10):

conda env create -f environment.yml
conda activate jittorgeometric

jittor_geometric需要从github手动下载:

git clone https://github.com/AlgRUC/JittorGeometric.git
cd JittorGeometric
pip install .

数据准备

比赛提供的 cora.pkl 不提交到 Git。请将其放到以下位置:

data/
└── cora.pkl

也可以通过 --data-path /path/to/cora.pkl 指定其他位置。文件应包含:

字段 形状/类型 说明
x (2708, 1433) 节点特征
y (2708,) 节点标签,测试标签为 -1
edge_index (2, num_edges) COO 边索引
train_mask / val_mask / test_mask (2708,) 数据划分
num_features / num_classes int 特征数和类别数

配置

默认配置位于 configs/cora_gcn.json,包含数据路径、设备、随机种子、学习率、 训练轮数、隐藏层维度及 dropout 等参数。命令行参数优先于配置文件,例如:

python gcn.py train --config configs/cora_gcn.json --seed 123 --epochs 300

训练

python gcn.py train --config configs/cora_gcn.json

运行后会在 outputs/cora_gcn/ 保存:

  • best_model.pkl:验证集准确率最高的模型权重
  • result.json:最佳模型对测试节点的预测
  • config.json:本次运行的实际配置
  • command.txt:本次运行命令
  • train.log:训练日志

若要强制使用 CPU,可添加 --device cpu

评测与推理

加载指定权重,输出训练集和验证集准确率并生成测试集预测:

python gcn.py predict \
  --config configs/cora_gcn.json \
  --checkpoint outputs/cora_gcn/best_model.pkl \
  --output result.json

缺少配置、数据或权重时,脚本会给出对应文件路径和修复提示。

结果说明

评测指标为节点分类准确率:

accuracy = 预测正确的节点数 / 参与评测的节点总数

固定随机种子后可提高复现性,但不同 Jittor、CUDA 和底层算子版本仍可能造成轻微 数值差异。线上成绩由比赛平台使用隐藏测试标签计算,本地无法计算测试集准确率。

项目结构

.
├── configs/cora_gcn.json
├── data/README.md
├── gcn.py
├── requirements.txt
├── LICENSE
└── README.md
关于
35.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

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