{"id":13541624,"url":"https://github.com/THUMNLab/AutoGL","last_synced_at":"2025-04-02T09:32:02.994Z","repository":{"id":37454694,"uuid":"317248195","full_name":"THUMNLab/AutoGL","owner":"THUMNLab","description":"An autoML framework \u0026 toolkit for machine learning on graphs.","archived":false,"fork":false,"pushed_at":"2024-08-08T16:55:04.000Z","size":1969,"stargazers_count":1098,"open_issues_count":18,"forks_count":120,"subscribers_count":29,"default_branch":"main","last_synced_at":"2025-03-27T12:09:35.292Z","etag":null,"topics":["automl","deep-learning","graph-neural-networks","hyper-parameter-optimization","machine-learning","neural-architecture-search","pytorch","pytorch-geometric"],"latest_commit_sha":null,"homepage":"http://mn.cs.tsinghua.edu.cn/AutoGL/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/THUMNLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-30T14:26:22.000Z","updated_at":"2025-03-27T03:10:24.000Z","dependencies_parsed_at":"2024-01-05T21:21:54.684Z","dependency_job_id":"8b332a9c-b935-4b79-a548-c50aedb4b736","html_url":"https://github.com/THUMNLab/AutoGL","commit_stats":{"total_commits":591,"total_committers":21,"mean_commits":"28.142857142857142","dds":0.6480541455160744,"last_synced_commit":"5832a66b0b3a0ecee01ddfe2c1bf6ef2a490613e"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/THUMNLab%2FAutoGL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/THUMNLab%2FAutoGL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/THUMNLab%2FAutoGL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/THUMNLab%2FAutoGL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/THUMNLab","download_url":"https://codeload.github.com/THUMNLab/AutoGL/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246788655,"owners_count":20834134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automl","deep-learning","graph-neural-networks","hyper-parameter-optimization","machine-learning","neural-architecture-search","pytorch","pytorch-geometric"],"created_at":"2024-08-01T10:00:52.384Z","updated_at":"2025-04-02T09:32:02.141Z","avatar_url":"https://github.com/THUMNLab.png","language":"Python","readme":"# Auto Graph Learning\n\n[Chinese Introduction](README_cn.md)\n\nAn autoML framework \u0026 toolkit for machine learning on graphs.\n\n*Actively under development by @THUMNLab*\n\nFeel free to open \u003ca href=\"https://github.com/THUMNLab/AutoGL/issues\"\u003eissues\u003c/a\u003e or contact us at \u003ca href=\"mailto:autogl@tsinghua.edu.cn\"\u003eautogl@tsinghua.edu.cn\u003c/a\u003e if you have any comments or suggestions!\n\n\u003c!--\n [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n% [![Documentation Status](http://mn.cs.tsinghua.edu.cn/autogl/documentation/?badge=latest)](http://mn.cs.tsinghua.edu.cn/autogl/documentation/?badge=latest)--\u003e\n\n## News!\n- 2023.10.29 New version! v0.4.1 is here!\n    - We have simplified the dataset module so that users can build their own datasets more easily! \n    - We have developed an extended library: [AutoGL-light](https://github.com/THUMNLab/AutoGL-light), which is a lightweight version of AutoGL. Users can customize their own AutoML pipeline for graphs more easily!\n    - Minor bugs fixed.\n- 2022.12.30 New version! v0.4.0-pre is here!\n    - We have proposed __NAS-Bench-Graph__ ([paper](https://openreview.net/pdf?id=bBff294gqLp), [code](https://github.com/THUMNLab/NAS-Bench-Graph), [tutorial](http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/tutorial/t_nas_bench_graph.html)), the first NAS-benchmark for graphs published in NeurIPS'22. By using AutoGL together with NAS-Bench-Graph, the performance estimation process of GraphNAS algorithms can be greatly speeded up. \n    - We have supported the graph __robustness__ algorithms in AutoGL, including graph structure engineering, robust GNNs and robust GraphNAS. See [robustness tutorial](http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/tutorial/t_robust.html) for more details.\n    - We have supported graph __self-supervised learning__! See [self-supervised learning tutorial](http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/tutorial/t_ssl_trainer.html) for more details.\n- 2021.12.31 Version v0.3.0-pre is released\n    - Support [__Deep Graph Library (DGL)__](https://www.dgl.ai/) backend including homogeneous node classification, link prediction, and graph classification tasks. AutoGL is also compatible with PyG 2.0 now.\n    - Support __heterogeneous__ node classification! See [hetero tutorial](http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/tutorial/t_hetero_node_clf.html) .\n    - The module `model` now supports __decoupled__ to two additional sub-modules named `encoder` and `decoder`. Under the __decoupled__ design, one `encoder` can be used to solve all kinds of tasks.\n    - Enrich [NAS algorithms](http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/tutorial/t_nas.html) such as [AutoAttend](https://proceedings.mlr.press/v139/guan21a.html), [GASSO](https://proceedings.neurips.cc/paper/2021/hash/8c9f32e03aeb2e3000825c8c875c4edd-Abstract.html), [hardware-aware algorithm](http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/documentation/nas.html#autogl.module.nas.estimator.OneShotEstimator_HardwareAware), etc. \n- 2021.07.11 Version 0.2.0-pre is released, which supports [neural architecture search (NAS)](http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/tutorial/t_nas.html) to customize architectures, [sampling](http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/tutorial/t_trainer.html#node-classification-with-sampling) to perform tasks on large datasets, and link prediction. \n- 2021.04.16 Our survey paper about automated machine learning on graphs is accepted by IJCAI! See more [here](http://arxiv.org/abs/2103.00742).\n- 2021.04.10 Our paper [__AutoGL: A Library for Automated Graph Learning__](https://arxiv.org/abs/2104.04987) is accepted by _ICLR 2021 Workshop on Geometrical and Topological Representation Learning_! You can cite our paper following methods [here](#Cite).\n\n## Introduction\n\nAutoGL is developed for researchers and developers to conduct autoML on graph datasets and tasks easily and quickly. See our documentation for detailed information!\n\nThe workflow below shows the overall framework of AutoGL.\n\n\u003cimg src=\"./resources/workflow.svg\"\u003e\n\nAutoGL uses `datasets` to maintain datasets for graph-based machine learning, which is based on Dataset in PyTorch Geometric or Deep Graph Library with some functions added to support the auto solver framework.\n\nDifferent graph-based machine learning tasks are handled by different `AutoGL solvers`, which make use of five main modules to automatically solve given tasks, namely `auto feature engineer`, `neural architecture search`, `auto model`, `hyperparameter optimization`, and `auto ensemble`. \n\nCurrently, the following algorithms are supported in AutoGL:\n\n\n\u003ctable\u003e\n    \u003ctbody\u003e\n    \u003ctr valign=\"top\"\u003e\n        \u003ctd\u003eFeature Engineer\u003c/td\u003e\n        \u003ctd\u003eModel\u003c/td\u003e\n        \u003ctd\u003eNAS\u003c/td\u003e\n        \u003ctd\u003eHPO\u003c/td\u003e\n        \u003ctd\u003eEnsemble\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr valign=\"top\"\u003e\n        \u003c!--\u003ctd\u003e\u003cb\u003eGenerators\u003c/b\u003e\u003cbr\u003egraphlet \u003cbr\u003e eigen \u003cbr\u003e pagerank \u003cbr\u003e PYGLocalDegreeProfile \u003cbr\u003e PYGNormalizeFeatures \u003cbr\u003e PYGOneHotDegree \u003cbr\u003e onehot \u003cbr\u003e \u003cbr\u003e\u003cb\u003eSelectors\u003c/b\u003e\u003cbr\u003e SeFilterConstant\u003cbr\u003e gbdt \u003cbr\u003e \u003cbr\u003e\u003cb\u003eSubgraph\u003c/b\u003e\u003cbr\u003e NxLargeCliqueSize\u003cbr\u003e NxAverageClusteringApproximate\u003cbr\u003e NxDegreeAssortativityCoefficient\u003cbr\u003e NxDegreePearsonCorrelationCoefficient\u003cbr\u003e NxHasBridge \u003cbr\u003eNxGraphCliqueNumber\u003cbr\u003e NxGraphNumberOfCliques\u003cbr\u003e NxTransitivity\u003cbr\u003e NxAverageClustering\u003cbr\u003e NxIsConnected\u003cbr\u003e NxNumberConnectedComponents\u003cbr\u003e NxIsDistanceRegular\u003cbr\u003e NxLocalEfficiency\u003cbr\u003e NxGlobalEfficiency\u003cbr\u003e NxIsEulerian \u003c/td\u003e--\u003e\n        \u003ctd\u003e\u003cb\u003eGenerators\u003c/b\u003e\u003cbr\u003eGraphlets \u003cbr\u003e EigenGNN \u003cbr\u003e \u003ca href=\"http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/tutorial/t_fe.html\"\u003emore ...\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eSelectors\u003c/b\u003e\u003cbr\u003e SeFilterConstant\u003cbr\u003e gbdt \u003cbr\u003e \u003cbr\u003e\u003cb\u003eGraph\u003c/b\u003e\u003cbr\u003e netlsd\u003cbr\u003e NxAverageClustering\u003cbr\u003e \u003ca href=\"http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/tutorial/t_fe.html\"\u003emore ...\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cb\u003eHomo Encoders\u003c/b\u003e\u003cbr\u003e GCNEncoder \u003cbr\u003e GATEncoder \u003cbr\u003e SAGEEncoder \u003cbr\u003e GINEncoder \u003cbr\u003e \u003cbr\u003e\u003cb\u003eDecoders\u003c/b\u003e\u003cbr\u003eLogSoftmaxDecoder \u003cbr\u003e DotProductDecoder \u003cbr\u003e SumPoolMLPDecoder \u003cbr\u003e JKSumPoolDecoder \u003c/td\u003e\n        \u003ctd\u003e\n        \u003cb\u003eAlgorithms\u003c/b\u003e\u003cbr\u003e\n        Random\u003cbr\u003e\n        RL\u003cbr\u003e\n        Evolution\u003cbr\u003e\n        GASSO\u003cbr\u003e\n        \u003ca href='http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/documentation/nas.html'\u003emore ...\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003cb\u003eSpaces\u003c/b\u003e\u003cbr\u003e\n        SinglePath\u003cbr\u003e\n        GraphNas\u003cbr\u003e\n        AutoAttend\u003cbr\u003e\n        \u003ca href='http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/documentation/nas.html'\u003emore ...\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n        \u003cb\u003eEstimators\u003c/b\u003e\u003cbr\u003e\n        Oneshot\u003cbr\u003e\n        Scratch\u003cbr\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e Grid \u003cbr\u003e Random \u003cbr\u003e Anneal \u003cbr\u003e Bayes \u003cbr\u003e CAMES \u003cbr\u003e MOCAMES \u003cbr\u003e Quasi random \u003cbr\u003e TPE \u003cbr\u003e AutoNE \u003c/td\u003e\n        \u003ctd\u003e Voting \u003cbr\u003e Stacking \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\nThis toolkit also serves as a framework for users to implement and test their own autoML or graph-based machine learning models.\n\n## Installation\n\n### Requirements\n\nPlease make sure you meet the following requirements before installing AutoGL.\n\n1. Python \u003e= 3.6.0\n\n2. PyTorch (\u003e=1.6.0)\n\n    see \u003chttps://pytorch.org/\u003e for installation.\n\n3. Graph Library Backend\n\n    You will need either PyTorch Geometric (PyG) or Deep Graph Library (DGL) as the backend. You can select a backend following [here](http://mn.cs.tsinghua.edu.cn/autogl/documentation/docfile/tutorial/t_backend.html) if you install both.\n\n    3.1 PyTorch Geometric (\u003e=1.7.0)\n\n    See \u003chttps://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html/\u003e for installation.\n\n    3.2 Deep Graph Library (\u003e=0.7.0)\n\n    See \u003chttps://dgl.ai/\u003e for installation.\n\n\n### Installation\n\n#### Install from pip\n\nRun the following command to install this package through `pip`.\n\n```\npip install autogl\n```\n\n#### Install from source\n\nRun the following command to install this package from the source.\n\n```\ngit clone https://github.com/THUMNLab/AutoGL.git\ncd AutoGL\npython setup.py install\n```\n\n#### Install for development\n\nIf you are a developer of the AutoGL project, please use the following command to create a soft link, then you can modify the local package without install them again.\n\n```\npip install -e .\n```\n\n## Documentation\n\nPlease refer to our \u003ca href=\"http://mn.cs.tsinghua.edu.cn/autogl/documentation/\"\u003edocumentation\u003c/a\u003e to see the detailed documentation.\n\nYou can also make the documentation locally. First, please install sphinx and sphinx-rtd-theme:\n```\npip install -U Sphinx\npip install sphinx-rtd-theme\n```\nThen, make an html documentation by:\n```\ncd docs\nmake clean \u0026\u0026 make html\n```\n\nThe documentation will be automatically generated under `docs/_build/html`\n\n## Cite\n\nPlease cite [our paper](https://openreview.net/forum?id=0yHwpLeInDn) as follows if you find our code useful:\n```\n@inproceedings{guan2021autogl,\n  title={Auto{GL}: A Library for Automated Graph Learning},\n  author={Chaoyu Guan and Ziwei Zhang and Haoyang Li and Heng Chang and Zeyang Zhang and Yijian Qin and Jiyan Jiang and Xin Wang and Wenwu Zhu},\n  booktitle={ICLR 2021 Workshop on Geometrical and Topological Representation Learning},\n  year={2021},\n  url={https://openreview.net/forum?id=0yHwpLeInDn}\n}\n```\n\nYou may also find our [survey paper](http://arxiv.org/abs/2103.00742) helpful:\n```\n@article{zhang2021automated,\n  title={Automated Machine Learning on Graphs: A Survey},\n  author={Zhang, Ziwei and Wang, Xin and Zhu, Wenwu},\n  booktitle = {Proceedings of the Thirtieth International Joint Conference on Artificial Intelligence, {IJCAI-21}},\n  year={2021},\n  note={Survey track}\n}\n```\n\n## License\nWe follow [Apache license](LICENSE) across the entire codebase from v0.2.\n","funding_links":[],"categories":["Tool","Graph Machine Learning","图数据处理","Profiling","Scheduling","Tools and projects","图机器学习库","AutoML","Python"],"sub_categories":["Others","LLM","网络服务_其他","Profiling"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTHUMNLab%2FAutoGL","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTHUMNLab%2FAutoGL","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTHUMNLab%2FAutoGL/lists"}