目录

jittor-warmup

该项目使用 JittorJittorGeometric 实现了一个用于 Cora 节点分类任务的 GCN 基线模型。主程序为 gcn.py,运行后会读取 data/cora.pkl,完成训练与验证,并生成测试集预测结果 result.json

1. 文件结构

./
├── data/
│   └── cora.pkl
├── gcn.py
├── README.md
└── result.json

各文件作用如下:

  • gcn.py:主程序,包含数据加载、图归一化、GCN 模型定义、训练、验证和预测导出。
  • data/cora.pkl:Cora 数据集的序列化文件。
  • result.json:模型对测试集节点的预测结果。
  • README.md:项目说明文档。

2. 数据说明

脚本默认从相对路径 data/cora.pkl 读取数据。该文件是一个 pickle 文件,包含以下字段:

字段名 形状 / 类型 说明
x (2708, 1433) float32 节点特征矩阵
y (2708,) int64 节点标签
edge_index (2, 10858) int64 图的边索引
train_mask (2708,) bool 训练集掩码,共 140 个节点
val_mask (2708,) bool 验证集掩码,共 500 个节点
test_mask (2708,) bool 测试集掩码,共 1000 个节点
num_features int 特征维度,值为 1433
num_classes int 类别数,值为 7

代码中的数据处理流程如下:

  • 对输入特征做按行归一化。
  • 使用 gcn_norm 对图结构进行归一化,并添加自环。
  • 将 COO 图结构转换为 CSCCSR 格式,供 GCNConv 使用。

3. 运行方式

python gcn.py

程序运行后将会:

  1. 加载 data/cora.pkl
  2. 训练 3 层 GCN 模型
  3. 根据验证集最优结果进行 early stopping
  4. 生成测试集预测文件 result.json

当前脚本中使用的主要超参数为:

  • seed=42
  • HIDDEN_DIM = 256
  • DROPOUT = 0.85
  • GCN_LAYERS = 3
  • LEARNING_RATE = 0.005
  • WEIGHT_DECAY = 5e-4
  • MAX_EPOCHS = 200
  • PATIENCE = 80

输出文件 result.json 的格式示例:

{
  "1": 3,
  "2": 6,
  "6": 5
}

其中键为测试节点编号,值为预测类别。

4. 运行环境

依赖要求

代码中直接依赖以下库:

  • Python
  • jittor
  • jittor_geometric
  • numpy

推荐环境:

  • Python 3.10Python 3.11
  • 正常可用的 Jittor
  • 已正确安装的 JittorGeometric
  • numpy

当前终端中尚未安装或无法导入:

  • jittor
  • jittor_geometric

因此如需运行本项目,需要先完成这两个库的安装。安装方式建议参考官方文档:

5. 补充说明

  • 代码会自动检测是否存在 CUDA,并通过 jt.flags.use_cuda 控制是否使用 GPU。
  • 随机种子固定为 42,便于复现结果。
  • 运行时请确保命令执行目录下存在 data/cora.pkl,否则会因相对路径找不到数据文件而报错。
关于
37.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

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