diff --git a/match.yml b/match.yml index c03eb28f..c1f030fd 100644 --- a/match.yml +++ b/match.yml @@ -1,5 +1,6 @@ node_classification: - model: + - dropedge_gcn - gdc_gcn - gcn - gat @@ -24,7 +25,6 @@ node_classification: - ppnp - sgcpn - sgc - - dropedge_gcn - unet - pprgo dataset: diff --git a/tests/tasks/test_node_classification.py b/tests/tasks/test_node_classification.py index 5adb8027..25ce39a8 100644 --- a/tests/tasks/test_node_classification.py +++ b/tests/tasks/test_node_classification.py @@ -1,5 +1,4 @@ import torch -import torch.nn.functional as F from cogdl import options from cogdl.tasks import build_task from cogdl.datasets import build_dataset @@ -20,34 +19,31 @@ def get_default_args(): "lr": 0.01, "weight_decay": 5e-4, "missing_rate": -1, - "task": "node_classification", - "dataset": "cora", } return build_args_from_dict(default_dict) def test_gdc_gcn_cora(): args = get_default_args() - args.task = "node_classification" - args.dataset = "cora" - args.model = "gdc_gcn" + args.task = 'node_classification' + args.dataset = 'cora' + args.model = 'gdc_gcn' dataset = build_dataset(args) args.num_features = dataset.num_features args.num_classes = dataset.num_classes args.num_layers = 1 - args.alpha = 0.05 # ppr filter param - args.t = 5.0 # heat filter param - args.k = 128 # top k entries to be retained - args.eps = 0.01 # change depending on gdc_type + args.alpha = 0.05 # ppr filter param + args.t = 5.0 # heat filter param + args.k = 128 # top k entries to be retained + args.eps = 0.01 # change depending on gdc_type args.dataset = dataset - args.gdc_type = "ppr" # ppr, heat, none + args.gdc_type = 'ppr' # ppr, heat, none model = build_model(args) task = build_task(args, dataset=dataset, model=model) ret = task.train() assert 0 <= ret["Acc"] <= 1 - def test_gcn_cora(): args = get_default_args() args.task = "node_classification" @@ -80,6 +76,29 @@ def test_mlp_pubmed(): ret = task.train() assert 0 <= ret["Acc"] <= 1 +def test_dropedge_gcn_pubmed(): + args = get_default_args() + args.task = "node_classification" + args.dataset = "pubmed" + args.model = "dropedge_gcn" + args.dropedge = 0.5 + args.normalization = "AugNorm" + task = build_task(args) + ret = task.train() + assert 0 <= ret["Acc"] <= 1 + +def test_dropedge_gcn_citeseer(): + args = get_default_args() + args.task = "node_classification" + args.dataset = "citeseer" + args.model = "dropedge_gcn" + args.dropedge = 0.5 + args.normalization = "AugNorm" + task = build_task(args) + ret = task.train() + assert 0 <= ret["Acc"] <= 1 + + def test_mixhop_citeseer(): args = get_default_args() @@ -101,7 +120,7 @@ def test_pairnorm_cora_deepgcn(): args.pn_model = "DeepGCN" args.nlayer = 10 args.missing_rate = 100 - args.norm_mode = "PN-SI" + args.norm_mode = 'PN-SI' args.residual = 0 args.hidden_layers = 64 args.nhead = 1 @@ -110,7 +129,7 @@ def test_pairnorm_cora_deepgcn(): args.no_fea_norm = "store_false" task = build_task(args) ret = task.train() - assert 0 <= ret["Acc"] <= 1 + assert 0 <= ret["Acc"] <=1 def test_pairnorm_cora_gcn(): @@ -121,7 +140,7 @@ def test_pairnorm_cora_gcn(): args.pn_model = "GCN" args.nlayer = 10 args.missing_rate = 100 - args.norm_mode = "PN-SI" + args.norm_mode = 'PN-SI' args.residual = 0 args.hidden_layers = 64 args.nhead = 1 @@ -130,7 +149,7 @@ def test_pairnorm_cora_gcn(): args.no_fea_norm = "store_false" task = build_task(args) ret = task.train() - assert 0 <= ret["Acc"] <= 1 + assert 0 <= ret["Acc"] <=1 def test_pairnorm_cora_sgc(): @@ -141,7 +160,7 @@ def test_pairnorm_cora_sgc(): args.pn_model = "SGC" args.nlayer = 10 args.missing_rate = 100 - args.norm_mode = "PN-SI" + args.norm_mode = 'PN-SI' args.residual = 0 args.hidden_layers = 64 args.nhead = 1 @@ -150,7 +169,7 @@ def test_pairnorm_cora_sgc(): args.no_fea_norm = "store_false" task = build_task(args) ret = task.train() - assert 0 <= ret["Acc"] <= 1 + assert 0 <= ret["Acc"] <=1 def test_pairnorm_cora_deepgat(): @@ -161,33 +180,28 @@ def test_pairnorm_cora_deepgat(): args.pn_model = "DeepGAT" args.nlayer = 10 args.missing_rate = 100 - args.norm_mode = "PN-SI" + args.norm_mode = 'PN-SI' args.residual = 0 args.hidden_layers = 64 - args.nhead = 2 + args.nhead = 1 args.dropout = 0.6 args.norm_scale = 1.0 args.no_fea_norm = "store_false" task = build_task(args) ret = task.train() - assert 0 <= ret["Acc"] <= 1 + assert 0 <= ret["Acc"] <=1 def test_graphsage_cora(): args = get_default_args() args.task = "node_classification" + args.dataset = "cora" args.model = "graphsage" - args.batch_size = 256 args.num_layers = 2 - args.patience = 1 - args.max_epoch = 5 - args.hidden_size = [32, 32] - args.sample_size = [3, 5] - args.num_workers = 1 - for dataset in ["cora", "pubmed"]: - args.dataset = dataset - task = build_task(args) - ret = task.train() + args.hidden_size = [128] + args.sample_size = [10, 10] + task = build_task(args) + ret = task.train() assert 0 <= ret["Acc"] <= 1 @@ -260,25 +274,8 @@ def test_pyg_unet_cora(): args = get_default_args() args.task = "node_classification" args.dataset = "cora" - args.model = "pyg_unet" - args.num_layers = 2 - task = build_task(args) - ret = task.train() - assert 0 <= ret["Acc"] <= 1 - - -def test_unet_cora(): - args = get_default_args() - args.cpu = True args.model = "unet" - args.pool_rate = [0.5, 0.5] - args.n_pool = 2 - args.adj_dropout = 0.3 - args.n_dropout = 0.8 - args.hidden_size = 16 - args.improved = True - args.aug_adj = True - args.activation = "elu" + args.num_layers = 2 task = build_task(args) ret = task.train() assert 0 <= ret["Acc"] <= 1 @@ -465,70 +462,46 @@ def test_gpt_gnn_cora(): ret = task.train() assert 0 <= ret["Acc"] <= 1 - -def test_sign_cora(): - args = get_default_args() - args.task = "node_classification" - args.model = "sign" - args.dataset = "cora" - args.lr = 0.00005 - args.hidden_size = 2048 - args.num_layers = 3 - args.num_propagations = 3 - args.dropout = 0.3 - args.directed = False - args.dropedge_rate = 0.2 - args.asymm_norm = False - args.set_diag = False - args.remove_diag = False - task = build_task(args) - ret = task.train() - assert 0 < ret["Acc"] < 1 - - def test_jknet_jknet_cora(): args = get_default_args() args.task = "node_classification" args.dataset = "jknet_cora" args.model = "jknet" args.lr = 0.005 - args.layer_aggregation = "maxpool" - args.node_aggregation = "sum" - args.n_layers = 3 + args.layer_aggregation = 'maxpool' + args.node_aggregation = 'sum' + args.n_layers = 6 args.n_units = 16 args.in_features = 1433 args.out_features = 7 - args.max_epoch = 2 + args.max_epoch = 100 task = build_task(args) ret = task.train() assert 0 <= ret["Acc"] <= 1 - -def test_ppnp_cora(): +def test_ppnp_citeseer(): args = get_default_args() - args.task = "node_classification" - args.model = "ppnp" - args.dataset = "cora" - args.propagation_type = "ppnp" + args.task = 'node_classification' + args.model = 'ppnp' + args.dataset = 'citeseer' + args.propagation_type = 'ppnp' args.alpha = 0.1 args.num_iterations = 10 task = build_task(args) ret = task.train() - assert 0 < ret["Acc"] < 1 + assert 0 < ret['Acc'] < 1 - -def test_appnp_cora(): +def test_appnp_citeseer(): args = get_default_args() - args.task = "node_classification" - args.model = "ppnp" - args.dataset = "cora" - args.propagation_type = "appnp" + args.task = 'node_classification' + args.model = 'ppnp' + args.dataset = 'citeseer' + args.propagation_type = 'appnp' args.alpha = 0.1 args.num_iterations = 10 task = build_task(args) ret = task.train() - assert 0 < ret["Acc"] < 1 - + assert 0 < ret['Acc'] < 1 def test_sgcpn_cora(): args = get_default_args() @@ -544,7 +517,6 @@ def test_sgcpn_cora(): ret = task.train() assert 0 < ret["Acc"] < 1 - def test_sgc_cora(): args = get_default_args() args.task = "node_classification" @@ -554,122 +526,19 @@ def test_sgc_cora(): ret = task.train() assert 0 <= ret["Acc"] <= 1 - def test_dropedge_gcn_cora(): args = get_default_args() args.task = "node_classification" args.dataset = "cora" args.model = "dropedge_gcn" - args.baseblock = "mutigcn" - args.inputlayer = "gcn" - args.outputlayer = "gcn" - args.hidden_size = 64 - args.dropout = 0.5 - args.withbn = False - args.withloop = False - args.nhiddenlayer = 1 - args.nbaseblocklayer = 1 - args.aggrmethod = "default" - args.activation = F.relu - args.task_type = "full" - - task = build_task(args) - ret = task.train() - assert 0 <= ret["Acc"] <= 1 - - -def test_dropedge_resgcn_cora(): - args = get_default_args() - args.task = "node_classification" - args.dataset = "cora" - args.model = "dropedge_gcn" - args.baseblock = "resgcn" - args.inputlayer = "gcn" - args.outputlayer = "gcn" - args.hidden_size = 64 - args.dropout = 0.5 - args.withbn = False - args.withloop = False - args.nhiddenlayer = 1 - args.nbaseblocklayer = 1 - args.aggrmethod = "concat" - args.activation = F.relu - args.task_type = "full" - - task = build_task(args) - ret = task.train() - assert 0 <= ret["Acc"] <= 1 - - -def test_dropedge_densegcn_cora(): - args = get_default_args() - args.task = "node_classification" - args.dataset = "cora" - args.model = "dropedge_gcn" - args.baseblock = "densegcn" - args.inputlayer = "" - args.outputlayer = "none" - args.hidden_size = 64 - args.dropout = 0.5 - args.withbn = False - args.withloop = False - args.nhiddenlayer = 1 - args.nbaseblocklayer = 1 - args.aggrmethod = "add" - args.activation = F.relu - args.task_type = "full" - + args.dropedge = 0.5 + args.normalization = "AugNorm" task = build_task(args) ret = task.train() assert 0 <= ret["Acc"] <= 1 - -def test_dropedge_inceptiongcn_cora(): - args = get_default_args() - args.task = "node_classification" - args.dataset = "cora" - args.model = "dropedge_gcn" - args.baseblock = "inceptiongcn" - args.inputlayer = "gcn" - args.outputlayer = "gcn" - args.hidden_size = 64 - args.dropout = 0.5 - args.withbn = False - args.withloop = False - args.nhiddenlayer = 1 - args.nbaseblocklayer = 1 - args.aggrmethod = "add" - args.activation = F.relu - args.task_type = "full" - - task = build_task(args) - ret = task.train() - assert 0 <= ret["Acc"] <= 1 - - -def test_pprgo_cora(): - args = get_default_args() - args.cpu = True - args.task = "node_classification" - args.dataset = "cora" - args.model = "pprgo" - args.k = 32 - args.alpha = 0.5 - args.eval_step = 1 - args.batch_size = 32 - args.test_batch_size = 128 - args.activation = "relu" - args.num_layers = 2 - args.nprop_inference = 2 - args.eps = 0.001 - for norm in ["sym", "row"]: - args.norm = norm - task = build_task(args) - ret = task.train() - assert 0 <= ret["Acc"] <= 1 - - if __name__ == "__main__": + test_gdc_gcn_cora() test_gcn_cora() test_gat_cora() @@ -697,14 +566,9 @@ def test_pprgo_cora(): test_grand_cora() test_pyg_gcn_cora_sampler() test_gpt_gnn_cora() - test_sign_cora() test_jknet_jknet_cora() - test_sgcpn_cora() - test_ppnp_cora() - test_appnp_cora() + test_ppnp_citeseer() + test_appnp_citeseer() test_dropedge_gcn_cora() - test_dropedge_resgcn_cora() - test_dropedge_inceptiongcn_cora() - test_dropedge_densegcn_cora() - test_unet_cora() - test_pprgo_cora() + test_dropedge_gcn_pubmed() + test_dropedge_gcn_citeseer()