Update README.md
本项目面向计图挑战赛赛道一热身赛,在 Cora 引文网络数据集上完成节点分类任务。核心思路是将两种互补的图神经网络架构——侧重局部特征变换的 APPNP 与侧重深层图结构学习的 GCNII——进行集成,并在模型输出之上施加基于图拓扑的标签传播后处理,以充分利用训练集与验证集的全部标签信息。
输入特征 (2708 x 1433) │ ┌────┴────┐ │ │ APPNP GCNII ← 双架构并行 3层MLP 32层GCN2Conv +PPR传播 +初始残差 │ │ ▼ ▼ softmax softmax ← 各架构独立输出概率 │ │ └────┬────┘ │ Label Propagation ← PPR 标签传播后处理 (clamp train+val) (scipy 稀疏矩阵加速) │ Multi-Seed Ensemble ← 10 seeds × 2 models × 3 variants │ = 60 个预测取均值 ▼ Final Prediction ← argmax 输出
Cora 引文网络数据集:
# 1. 创建并激活 conda 环境 conda create -n jittor python=3.10 -y conda activate jittor # 2. 安装全部依赖(含 Jittor、JittorGeometric 及本项目依赖) pip install -r requirements.txt
python -c "import jittor; import jittor_geometric; print('Done!')"
将 cora.pkl 放置于 ./data/ 目录下:
cora.pkl
./data/
data/ └── cora.pkl
数据文件为 pickle 格式,包含以下字段:
x
y
edge_index
train_mask
val_mask
test_mask
# 完整训练(默认设置中的10个seeds全部运行) python scripts/train.py --config configs/default.yaml --data-root ./data # 单种子调试 python scripts/train.py --config configs/default.yaml --data-root ./data --seed 42 # 自定义输出路径 python scripts/train.py --config configs/default.yaml --data-root ./data \ --output ./outputs/result.json
--config
configs/default.yaml
--data-root
--seed
--output
--no-cuda
命令行参数优先级高于配置文件。
所有超参数集中于 configs/default.yaml,可按需调整:
model: appnp: hidden: 256 # MLP 隐藏层宽度 K: 10 # PPR 传播步数 alpha: 0.1 # PPR teleport 概率 gcnii: num_layers: 32 # GCN2Conv 层数 hidden: 64 # 隐藏层宽度 train: lr: 0.01 # 学习率 max_epochs: 600 # 最大训练轮次 ensemble: seeds: [42, 123, 456, 789, 2024, 314, 271, 888, 999, 2048] # 随机种子列表 lp_alphas: [0.2, 0.5] # 标签传播 alpha 候选
训练完成后自动生成:
outputs/result.json
outputs/config_used.yaml
预测结果格式:
{ "1708": 0, "1709": 1, "1710": 3 }
Jittor-ZenFlow-CiteGraph/ ├── configs/ │ └── default.yaml # 训练超参数配置 ├── src/ │ ├── __init__.py # 包初始化 │ ├── data.py # 数据加载与图预处理 │ ├── models.py # APPNPNet 与 GCNIINet 模型定义 │ └── label_propagation.py # 标签传播后处理 ├── scripts/ │ └── train.py # 训练与推理入口 ├── data/ # 数据目录(这里按开源规范要求,没有上传 cora.pkl ) ├── outputs/ # 运行结果 ├── README.md ├── LICENSE ├── requirements.txt └── .gitignore
本项目基于 Apache License 2.0 开源。
第六届计图人工智能挑战赛赛道一热身赛——基于 JittorGeometric 的 Cora 引文网络节点分类方案,采用 APPNP 与 GCNII 双模型集成及标签传播后处理。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
Jittor ZenFlow CiteGraph
1. 项目简介
本项目面向计图挑战赛赛道一热身赛,在 Cora 引文网络数据集上完成节点分类任务。核心思路是将两种互补的图神经网络架构——侧重局部特征变换的 APPNP 与侧重深层图结构学习的 GCNII——进行集成,并在模型输出之上施加基于图拓扑的标签传播后处理,以充分利用训练集与验证集的全部标签信息。
1.1 技术架构
1.2 核心组件
1.3 数据集
Cora 引文网络数据集:
2. 环境安装
2.1 系统要求
2.2 安装步骤
2.3 验证安装
3. 数据准备
将
cora.pkl放置于./data/目录下:数据文件为 pickle 格式,包含以下字段:
xyedge_indextrain_maskval_masktest_mask4. 训练与推理
4.1 快速开始
4.2 命令行参数
--configconfigs/default.yaml--data-root--seed--output--no-cuda命令行参数优先级高于配置文件。
4.3 配置说明
所有超参数集中于
configs/default.yaml,可按需调整:4.4 输出
训练完成后自动生成:
outputs/result.json— 测试集预测结果outputs/config_used.yaml— 本次运行使用的完整配置预测结果格式:
5. 项目结构
6. 第三方依赖与致谢
7. License
本项目基于 Apache License 2.0 开源。