# 快速开始

# 系统配置要求

  • Python 版本 >= 3.6
  • PyTorch 版本 >= 1.6.0

请根据如下链接来安装PyTorch (https://github.com/pytorch/pytorch#installation)。

PyTorch安装好之后,cogdl能够直接通过pip来安装:

pip install cogdl
1

通过如下指令来从github源来安装:

pip install git+https://github.com/thudm/cogdl.git
1

或者先将CogDL下载下来然后通过以下指令安装:

git clone git@github.com:THUDM/cogdl.git
cd cogdl
pip install -e .
1
2
3

# 使用说明

# API用法

您可以通过CogDL API进行各种实验,尤其是experimentquick_start.py (opens new window)这是一个快速入门的代码。您也可以使用自己的数据集和模型进行实验。examples/ (opens new window) 文件夹里提供了一些例子。

from cogdl import experiment

# basic usage
experiment(task="node_classification", dataset="cora", model="gcn")

# set other hyper-parameters
experiment(task="node_classification", dataset="cora", model="gcn", hidden_size=32, max_epoch=200)

# run over multiple models on different seeds
experiment(task="node_classification", dataset="cora", model=["gcn", "gat"], seed=[1, 2])

# automl usage
def func_search(trial):
    return {
        "lr": trial.suggest_categorical("lr", [1e-3, 5e-3, 1e-2]),
        "hidden_size": trial.suggest_categorical("hidden_size", [32, 64, 128]),
        "dropout": trial.suggest_uniform("dropout", 0.5, 0.8),
    }

experiment(task="node_classification", dataset="cora", model="gcn", seed=[1, 2], func_search=func_search)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

您也可以通过pipeline接口来跑一些有趣的应用。下面这个例子能够在pipeline.py (opens new window)文件中找到。

from cogdl import pipeline

# print the statistics of datasets
stats = pipeline("dataset-stats")
stats(["cora", "citeseer"])

# load OAGBert model and perform inference
oagbert = pipeline("oagbert")
outputs = oagbert(["CogDL is developed by KEG, Tsinghua.", "OAGBert is developed by KEG, Tsinghua."])
1
2
3
4
5
6
7
8
9

有关OAGBert更多的用法可以参见这里 (opens new window).

# 命令行

基本用法可以使用 python train.py --task example_task --dataset example_dataset --model example_model 来在 example_data 上运行 example_model 并使用 example_task 来评测结果。

  • --task, 运行的任务名称,像node_classification, unsupervised_node_classification, graph_classification这样来评测模型性能的下游任务。
  • --dataset, 运行的数据集名称,可以是以空格分隔开的数据集名称的列表,现在支持的数据集包括 cora, citeseer, pumbed, ppi, wikipedia, blogcatalog, dblp, flickr等。
  • --model, 运行的模型名称,可以是个列表,支持的模型包括 gcn, gat, deepwalk, node2vec, hope, grarep, netmf, netsmf, prone等。

如果你想在 Wikipedia 数据集上运行 LINE 和 NetMF 模型并且设置5个不同的随机种子,你可以使用如下的命令

$ python scripts/train.py --task unsupervised_node_classification --dataset wikipedia --model line netmf --seed 0 1 2 3 4
1

预计得到的结果如下:

Variant Micro-F1 0.1 Micro-F1 0.3 Micro-F1 0.5 Micro-F1 0.7 Micro-F1 0.9
('wikipedia', 'line') 0.4069±0.0011 0.4071±0.0010 0.4055±0.0013 0.4054±0.0020 0.4080±0.0042
('wikipedia', 'netmf') 0.4551±0.0024 0.4932±0.0022 0.5046±0.0017 0.5084±0.0057 0.5125±0.0035

如果你想使用多个 GPU 同时在 Cora 数据集上运行 GCN 和 GAT 模型,可以使用如下指令:

$ python scripts/parallel_train.py --task node_classification --dataset cora --model gcn gat --device-id 0 1 --seed 0 1 2 3 4
1

预计得到的结果如下:

Variant Acc
('cora', 'gcn') 0.8236±0.0033
('cora', 'gat') 0.8262±0.0032
最后更新于: 2021/4/2 下午4:03:07