SGL:大规模图学习工具包安装与使用指南
SGL(Scalable Graph Learning)是由北京大学DAIR实验室的图学习团队开发的一个专注于大规模图数据深度学习的工具包。它在WWW'22上获得了最佳学生论文奖,并以MIT许可证发布。本指南旨在帮助开发者快速了解SGL的目录结构、启动文件以及配置文件,以便于高效地利用该工具进行图神经网络的研发与应用。
1. 项目目录结构及介绍
以下是SGL的基本目录结构概述及其功能简介:
PKU-DAIR/SGL
├── examples # 示例代码,包括不同任务的应用实例
│ └── ...
├── img # 相关图像资料,可能用于文档或示例说明
├── sgl # 核心库源码,包含模型、数据处理等组件
├── Awesome-Auto-GNNs.md # 关于自动图神经网络搜索的相关资源列表
├── Awesome-GNN-Tricks.md # 图神经网络技巧汇总
├── Awesome-Scalable-GNNs.md # 可扩展图神经网络相关优秀项目清单
├── Awsome-GNN-Acceleration.md # 加速GNN的工具与方法
├── LICENSE # 许可证文件
├── MANIFEST.in # 包含构建时需要的额外文件列表
├── README.md # 项目说明文档
├── pyproject.toml # 项目配置文件,定义依赖等
├── requirements.txt # 环境所需的Python包列表
└── setup.py # 安装脚本
examples
: 提供了如何使用SGL的示例,包括节点分类、聚类和链路预测等。sgl
: 核心代码模块,包含了模型定义、图数据操作等重要功能。- 文档相关(
*.md
): 提供了各种图神经网络相关的资源集合,对于研究者和开发者十分有用。 - 元数据文件(
LICENSE
,MANIFEST.in
,README.md
,pyproject.toml
,requirements.txt
,setup.py
): 项目的基本信息、构建和部署所需配置。
2. 项目的启动文件介绍
虽然SGL没有明确的“启动文件”概念,但通常用户会从导入特定模块或者运行例子来开始。一个简单的起点是通过example
目录下的脚本来开始实验,比如节点分类,你可以通过类似以下方式启动:
from sgl.dataset import Planetoid
from sgl.models.homo import SGC
from sgl.tasks import NodeClassification
# 初始化数据集
dataset = Planetoid(root='./', name="pubmed")
# 创建模型
model = SGC(prop_steps=3, feat_dim=dataset.num_features, output_dim=dataset.num_classes)
# 设定设备和训练
device = "cuda:0"
test_acc = NodeClassification(dataset, model, lr=0.1, weight_decay=5e-5, epochs=200, device=device)
test_acc()
3. 项目的配置文件介绍
SGL主要通过代码和环境变量进行配置,而不是传统的配置文件。例如,在进行模型训练时,参数如学习率、权重衰减等通常是通过代码中指定。对于更复杂的配置,如自动神经架构搜索(ANAS),可能会涉及到外部优化框架的配置,这通常是通过创建配置对象来完成,如在示例中使用OpenBox来进行超参数优化。
要调整这些配置,用户需直接修改代码中的相应参数或在调用具体函数/类时传入相应的参数值。此外,如果涉及使用特定的数据集或调整图学习模型的复杂设置,可能需要遵循每个模块或函数的文档来设定参数。
请注意,尽管SGL的核心并不依赖于外部配置文件,但在实现高级功能或者定制化需求时,用户可能会创建自己的脚本或配置类来组织这些设置。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考