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.jpg 和 ppnp.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),仅供参考



