ADD file via upload
本项目基于 Jittor 和 JittorGeometric 实现两层 GCN,用于完成 Cora 图节点分类任务。代码入口为 gcn.py,运行后会训练模型、打印训练集/验证集准确率,并导出测试集预测结果 result.json。
gcn.py
result.json
推荐环境:
jt.flags.use_cuda = 1
安装依赖示例:
pip install numpy pip install jittor
jittor_geometric 请按照比赛环境或 JittorGeometric 官方安装方式配置。如果比赛平台已经预装 Jittor/JittorGeometric,可直接使用平台环境运行。
jittor_geometric
如需指定 C++ 编译器,当前代码中使用:
os.environ["cc_path"] = "/usr/bin/g++-11"
如果本地环境编译器路径不同,请在 gcn.py 中按实际环境修改该路径。
请将数据文件 cora.pkl 放到代码中配置的数据根目录下,或者自行修改数据读取路径。当前 gcn.py 使用的数据根目录为:
cora.pkl
/data/zt/jitor/data
期望目录结构如下:
/data/zt/jitor/data/ ├── cora.pkl └── result/
其中 result/ 用于保存最终预测文件。如果目录不存在,请先创建:
result/
mkdir -p /data/zt/jitor/data/result
cora.pkl 为 pickle 格式,包含以下字段:
x
y
-1
edge_index
[2, num_edges]
train_mask
val_mask
test_mask
num_classes
num_features
数据集原始文件不应提交到仓库。
在项目根目录运行:
python gcn.py
脚本会自动完成以下流程:
当前主要训练参数:
42
199
512
0.7
0.005
5e-4
训练完成后,脚本会使用训练后的模型对所有节点做推理,并根据 test_mask 导出测试集节点预测结果。
输出文件路径:
/data/zt/jitor/data/result/result.json
输出格式为 JSON 字典:
{ "1708": 3, "1709": 1 }
其中 key 为测试集节点编号,value 为预测类别编号。
脚本使用准确率作为评价指标:
accuracy = 正确预测节点数 / 参与评估节点数
训练过程中打印的 Train Acc 为训练集准确率,Val Acc 为验证集准确率。最终线上结果以提交的 result.json 为准。由于随机初始化、运行环境和 CUDA 算子差异,复现实验结果可能存在轻微波动。
Train Acc
Val Acc
代码中通过以下语句固定随机种子:
jt.misc.set_global_seed(42)
为了复现结果,请保持相同的数据文件、依赖版本、随机种子、训练参数和运行环境。
easyGnn/ ├── gcn.py # 训练、验证和测试集预测导出入口 ├── README.md # 项目说明文档 └── .gitignore # Git 忽略规则
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
easyGnn: Cora Node Classification with GCN
本项目基于 Jittor 和 JittorGeometric 实现两层 GCN,用于完成 Cora 图节点分类任务。代码入口为
gcn.py,运行后会训练模型、打印训练集/验证集准确率,并导出测试集预测结果result.json。环境安装
推荐环境:
jt.flags.use_cuda = 1安装依赖示例:
jittor_geometric请按照比赛环境或 JittorGeometric 官方安装方式配置。如果比赛平台已经预装 Jittor/JittorGeometric,可直接使用平台环境运行。如需指定 C++ 编译器,当前代码中使用:
如果本地环境编译器路径不同,请在
gcn.py中按实际环境修改该路径。数据准备
请将数据文件
cora.pkl放到代码中配置的数据根目录下,或者自行修改数据读取路径。当前gcn.py使用的数据根目录为:期望目录结构如下:
其中
result/用于保存最终预测文件。如果目录不存在,请先创建:cora.pkl为 pickle 格式,包含以下字段:xy-1edge_index[2, num_edges]train_maskval_masktest_masknum_classesnum_features数据集原始文件不应提交到仓库。
训练
在项目根目录运行:
脚本会自动完成以下流程:
cora.pkl当前主要训练参数:
421995120.70.0055e-4评估/推理
训练完成后,脚本会使用训练后的模型对所有节点做推理,并根据
test_mask导出测试集节点预测结果。输出文件路径:
输出格式为 JSON 字典:
其中 key 为测试集节点编号,value 为预测类别编号。
结果说明
脚本使用准确率作为评价指标:
训练过程中打印的
Train Acc为训练集准确率,Val Acc为验证集准确率。最终线上结果以提交的result.json为准。由于随机初始化、运行环境和 CUDA 算子差异,复现实验结果可能存在轻微波动。可复现性说明
代码中通过以下语句固定随机种子:
为了复现结果,请保持相同的数据文件、依赖版本、随机种子、训练参数和运行环境。
文件说明