|
- import sys
- import yaml
- import random
- import torch.backends.cudnn
- import numpy as np
- sys.path.append("../")
- from autogl.datasets import build_dataset_from_name
- from autogl.solver import AutoNodeClassifier
- from autogl.module import MicroF1
-
-
- torch.multiprocessing.set_sharing_strategy('file_system')
-
-
- if __name__ == '__main__':
- import argparse
- argument_parser: argparse.ArgumentParser = argparse.ArgumentParser()
- argument_parser.add_argument(
- "--dataset",
- default="pubmed",
- type=str,
- help="dataset to use",
- choices=[
- "cora",
- "pubmed",
- "citeseer",
- "reddit"
- ],
- )
- argument_parser.add_argument(
- "--configs",
- type=str,
- default="../configs/nodeclf_ladies_reproduction.yml",
- help="configuration file to adopt",
- )
- argument_parser.add_argument("--seed", type=int, default=0, help="random seed")
- argument_parser.add_argument("--device", default=0, type=int, help="GPU device")
-
- arguments = argument_parser.parse_args()
- if torch.cuda.is_available():
- torch.cuda.set_device(arguments.device)
- seed = arguments.seed
- random.seed(seed)
- np.random.seed(seed)
- torch.manual_seed(seed)
- if torch.cuda.is_available():
- torch.cuda.manual_seed(seed)
- torch.backends.cudnn.deterministic = True
- torch.backends.cudnn.benchmark = False
-
- dataset = build_dataset_from_name(arguments.dataset)
- configs = yaml.load(
- open(arguments.configs, "r").read(),
- Loader=yaml.FullLoader
- )
- autoClassifier = AutoNodeClassifier.from_config(configs)
- # The running time is likely to exceed 1 hour when CiteSeer or Reddit dataset is adopted
- autoClassifier.fit(dataset, time_limit=24 * 3600, evaluation_method=[MicroF1])
- autoClassifier.get_leaderboard().show()
- predict_result = autoClassifier.predict_proba()
- print(
- "test micro-f1: %.4f"
- % (MicroF1.evaluate(predict_result, dataset.data.y[dataset.data.test_mask].numpy()))
- )
|