APPNP 项目使用教程

APPNP 项目使用教程

1. 项目的目录结构及介绍

APPNP/
├── input/
│   ├── Cora/
│   │   ├── edgelist.csv
│   │   ├── features.json
│   │   └── target.csv
├── src/
│   ├── appnp.py
│   ├── data_utils.py
│   ├── model.py
│   ├── train.py
│   └── utils.py
├── LICENSE
├── README.md
├── appnp_run.jpg
└── ppnp.jpg
  • input/: 包含示例数据集 Cora,包括边列表 edgelist.csv、稀疏特征 features.json 和目标变量 target.csv
  • src/: 包含项目的主要代码文件。
    • appnp.py: 定义 APPNP 模型。
    • data_utils.py: 数据处理工具。
    • model.py: 模型定义。
    • train.py: 训练脚本。
    • utils.py: 辅助工具。
  • LICENSE: 项目许可证。
  • README.md: 项目说明文档。
  • appnp_run.jpgppnp.jpg: 项目相关图片。

2. 项目的启动文件介绍

项目的启动文件是 src/train.py。该文件负责加载数据、配置模型、训练模型并进行评估。

# src/train.py
import argparse
from appnp import APPNP
from data_utils import load_data
from model import train_model, evaluate_model

def main():
    parser = argparse.ArgumentParser(description='Train APPNP model')
    parser.add_argument('--dataset', type=str, default='Cora', help='Dataset name')
    parser.add_argument('--epochs', type=int, default=200, help='Number of epochs')
    parser.add_argument('--lr', type=float, default=0.01, help='Learning rate')
    parser.add_argument('--weight_decay', type=float, default=5e-4, help='Weight decay')
    parser.add_argument('--hidden', type=int, default=64, help='Number of hidden units')
    parser.add_argument('--dropout', type=float, default=0.5, help='Dropout rate')
    parser.add_argument('--alpha', type=float, default=0.1, help='Alpha for APPNP')
    parser.add_argument('--k', type=int, default=10, help='Number of propagation steps')
    args = parser.parse_args()

    # Load data
    adj, features, labels, idx_train, idx_val, idx_test = load_data(args.dataset)

    # Initialize model
    model = APPNP(nfeat=features.shape[1],
                  nhid=args.hidden,
                  nclass=labels.max().item() + 1,
                  dropout=args.dropout,
                  alpha=args.alpha,
                  K=args.k)

    # Train model
    train_model(model, adj, features, labels, idx_train, idx_val, args.epochs, args.lr, args.weight_decay)

    # Evaluate model
    evaluate_model(model, adj, features, labels, idx_test)

if __name__ == '__main__':
    main()

3. 项目的配置文件介绍

项目没有单独的配置文件,但可以通过命令行参数在启动文件 src/train.py 中进行配置。以下是一些常用的配置参数:

  • --dataset: 数据集名称,默认为 Cora
  • --epochs: 训练轮数,默认为 200。
  • --lr: 学习率,默认为 0.01。
  • --weight_decay: 权重衰减,默认为 5e-4。
  • --hidden: 隐藏层单元数,默认为 64。
  • --dropout: Dropout 率,默认为 0.5。
  • --alpha: APPNP 的 alpha 参数,默认为 0.1。
  • --k: 传播步数,默认为 10。

通过命令行运行项目

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值