2020-01-17 14:07:35 +01:00
< p align = "center" >
< img src = "https://xuanyidong.com/resources/images/AutoDL-log.png" width = "400" / >
< / p >
2020-01-14 14:52:06 +01:00
---------
[](LICENSE.md)
2020-10-03 11:43:15 +02:00
Automated Deep Learning Projects (AutoDL-Projects) is an open source, lightweight, but useful project for everyone.
2020-01-14 15:25:50 +01:00
This project implemented several neural architecture search (NAS) and hyper-parameter optimization (HPO) algorithms.
2021-03-01 14:02:29 +01:00
中文介绍见[README_CN.md](https://github.com/D-X-Y/AutoDL-Projects/tree/main/docs/README_CN.md)
2020-01-14 14:52:06 +01:00
2020-01-14 16:00:11 +01:00
**Who should consider using AutoDL-Projects**
2020-01-14 14:52:06 +01:00
2020-01-14 15:33:26 +01:00
- Beginners who want to **try different AutoDL algorithms**
- Engineers who want to **try AutoDL** to investigate whether AutoDL works on your projects
2020-01-14 14:52:06 +01:00
- Researchers who want to **easily** implement and experiement **new** AutoDL algorithms.
2020-01-14 16:00:11 +01:00
**Why should we use AutoDL-Projects**
2020-01-14 15:33:26 +01:00
- Simple library dependencies
- All algorithms are in the same codebase
- Active maintenance
2020-01-14 14:52:06 +01:00
## AutoDL-Projects Capabilities
2020-10-03 11:43:15 +02:00
At this moment, this project provides the following algorithms and scripts to run them. Please see the details in the link provided in the description column.
2020-01-14 14:52:06 +01:00
< table >
< tbody >
< tr align = "center" valign = "bottom" >
< th > Type< / th >
2020-01-14 15:58:35 +01:00
< th > ABBRV< / th >
2020-01-14 14:52:06 +01:00
< th > Algorithms< / th >
< th > Description< / th >
< / tr >
< tr > <!-- (1 - st row) -->
2020-01-14 15:58:35 +01:00
< td rowspan = "6" align = "center" valign = "middle" halign = "middle" > NAS < / td >
< td align = "center" valign = "middle" > TAS < / td >
2020-01-17 06:35:52 +01:00
< td align = "center" valign = "middle" > < a href = "https://arxiv.org/abs/1905.09717" > Network Pruning via Transformable Architecture Search< / a > < / td >
2021-03-01 14:02:29 +01:00
< td align = "center" valign = "middle" > < a href = "https://github.com/D-X-Y/AutoDL-Projects/tree/main/docs/NeurIPS-2019-TAS.md" > NeurIPS-2019-TAS.md< / a > < / td >
2020-01-14 14:52:06 +01:00
< / tr >
< tr > <!-- (2 - nd row) -->
2020-01-14 15:58:35 +01:00
< td align = "center" valign = "middle" > DARTS < / td >
2020-01-17 06:35:52 +01:00
< td align = "center" valign = "middle" > < a href = "https://arxiv.org/abs/1806.09055" > DARTS: Differentiable Architecture Search< / a > < / td >
2021-03-01 14:02:29 +01:00
< td align = "center" valign = "middle" > < a href = "https://github.com/D-X-Y/AutoDL-Projects/tree/main/docs/ICLR-2019-DARTS.md" > ICLR-2019-DARTS.md< / a > < / td >
2020-01-14 15:58:35 +01:00
< / tr >
< tr > <!-- (3 - nd row) -->
< td align = "center" valign = "middle" > GDAS < / td >
2020-01-17 06:35:52 +01:00
< td align = "center" valign = "middle" > < a href = "https://arxiv.org/abs/1910.04465" > Searching for A Robust Neural Architecture in Four GPU Hours< / a > < / td >
2021-03-01 14:02:29 +01:00
< td align = "center" valign = "middle" > < a href = "https://github.com/D-X-Y/AutoDL-Projects/tree/main/docs/CVPR-2019-GDAS.md" > CVPR-2019-GDAS.md< / a > < / td >
2020-01-14 14:52:06 +01:00
< / tr >
2020-01-14 15:58:35 +01:00
< tr > <!-- (4 - rd row) -->
< td align = "center" valign = "middle" > SETN < / td >
2020-01-17 06:35:52 +01:00
< td align = "center" valign = "middle" > < a href = "https://arxiv.org/abs/1910.05733" > One-Shot Neural Architecture Search via Self-Evaluated Template Network< / a > < / td >
2021-03-01 14:02:29 +01:00
< td align = "center" valign = "middle" > < a href = "https://github.com/D-X-Y/AutoDL-Projects/tree/main/docs/ICCV-2019-SETN.md" > ICCV-2019-SETN.md< / a > < / td >
2020-01-14 14:52:06 +01:00
< / tr >
2020-01-14 15:58:35 +01:00
< tr > <!-- (5 - th row) -->
< td align = "center" valign = "middle" > NAS-Bench-201 < / td >
< td align = "center" valign = "middle" > < a href = "https://openreview.net/forum?id=HJxyZkBKDr" > NAS-Bench-201: Extending the Scope of Reproducible Neural Architecture Search< / a > < / td >
2021-03-01 14:02:29 +01:00
< td align = "center" valign = "middle" > < a href = "https://github.com/D-X-Y/AutoDL-Projects/tree/main/docs/NAS-Bench-201.md" > NAS-Bench-201.md< / a > < / td >
2020-01-14 14:52:06 +01:00
< / tr >
2020-01-14 15:58:35 +01:00
< tr > <!-- (6 - th row) -->
2020-08-03 08:41:31 +02:00
< td align = "center" valign = "middle" > NATS-Bench < / td >
2020-10-15 13:03:35 +02:00
< td align = "center" valign = "middle" > < a href = "https://xuanyidong.com/assets/projects/NATS-Bench" > NATS-Bench: Benchmarking NAS Algorithms for Architecture Topology and Size< / a > < / td >
2022-04-25 00:18:16 +02:00
< td align = "center" valign = "middle" > < a href = "https://github.com/D-X-Y/NATS-Bench/blob/main/README.md" > NATS-Bench.md< / a > < / td >
2020-08-03 08:41:31 +02:00
< / tr >
< tr > <!-- (7 - th row) -->
2020-01-14 15:58:35 +01:00
< td align = "center" valign = "middle" > ... < / td >
< td align = "center" valign = "middle" > ENAS / REA / REINFORCE / BOHB < / td >
2020-08-18 08:29:30 +02:00
< td align = "center" valign = "middle" > Please check the original papers < / td >
2022-04-25 00:18:16 +02:00
< td align = "center" valign = "middle" > < a href = "https://github.com/D-X-Y/AutoDL-Projects/tree/main/docs/NAS-Bench-201.md" > NAS-Bench-201.md< / a > < a href = "https://github.com/D-X-Y/NATS-Bench/blob/main/README.md" > NATS-Bench.md< / a > < / td >
2020-01-14 14:52:06 +01:00
< / tr >
< tr > <!-- (start second block) -->
< td rowspan = "1" align = "center" valign = "middle" halign = "middle" > HPO < / td >
2020-01-14 15:58:35 +01:00
< td align = "center" valign = "middle" > HPO-CG < / td >
< td align = "center" valign = "middle" > Hyperparameter optimization with approximate gradient < / td >
2020-01-14 14:52:06 +01:00
< td align = "center" valign = "middle" > coming soon < / a > < / td >
< / tr >
< tr > <!-- (start third block) -->
< td rowspan = "1" align = "center" valign = "middle" halign = "middle" > Basic < / td >
2020-01-14 15:58:35 +01:00
< td align = "center" valign = "middle" > ResNet < / td >
2020-01-14 14:52:06 +01:00
< td align = "center" valign = "middle" > Deep Learning-based Image Classification < / td >
2021-03-01 14:02:29 +01:00
< td align = "center" valign = "middle" > < a href = "https://github.com/D-X-Y/AutoDL-Projects/tree/main/docs/BASELINE.md" > BASELINE.md< / a > < / a > < / td >
2020-01-14 14:52:06 +01:00
< / tr >
< / tbody >
< / table >
2019-11-15 07:15:07 +01:00
## Requirements and Preparation
2021-05-19 10:38:21 +02:00
2022-03-25 02:06:28 +01:00
**First of all**, please use `pip install .` to install `xautodl` library.
2021-05-19 10:38:21 +02:00
Please install `Python>=3.6` and `PyTorch>=1.5.0` . (You could use lower versions of Python and PyTorch, but may have bugs).
2020-01-14 14:52:06 +01:00
Some visualization codes may require `opencv` .
2019-11-15 07:15:07 +01:00
2020-01-11 08:46:31 +01:00
CIFAR and ImageNet should be downloaded and extracted into `$TORCH_HOME` .
2020-01-14 14:52:06 +01:00
Some methods use knowledge distillation (KD), which require pre-trained models. Please download these models from [Google Drive ](https://drive.google.com/open?id=1ANmiYEGX-IQZTfH8w0aSpj-Wypg-0DR- ) (or train by yourself) and save into `.latent-data` .
2019-11-15 07:15:07 +01:00
2021-03-17 11:06:29 +01:00
Please use
```
2021-03-19 11:22:58 +01:00
git clone --recurse-submodules https://github.com/D-X-Y/AutoDL-Projects.git XAutoDL
2021-03-17 11:06:29 +01:00
```
to download this repo with submodules.
2020-01-14 14:52:06 +01:00
## Citation
2019-11-15 07:15:07 +01:00
2020-11-02 04:48:43 +01:00
If you find that this project helps your research, please consider citing the related paper:
2019-11-15 07:15:07 +01:00
```
2021-03-29 07:04:24 +02:00
@inproceedings {dong2021autohas,
2021-04-07 11:14:49 +02:00
title = {{AutoHAS}: Efficient Hyperparameter and Architecture Search},
author = {Dong, Xuanyi and Tan, Mingxing and Yu, Adams Wei and Peng, Daiyi and Gabrys, Bogdan and Le, Quoc V},
booktitle = {2nd Workshop on Neural Architecture Search at International Conference on Learning Representations (ICLR)},
year = {2021}
2020-11-02 04:48:43 +01:00
}
2021-01-25 14:48:14 +01:00
@article {dong2021nats,
title = {{NATS-Bench}: Benchmarking NAS Algorithms for Architecture Topology and Size},
author = {Dong, Xuanyi and Liu, Lu and Musial, Katarzyna and Gabrys, Bogdan},
doi = {10.1109/TPAMI.2021.3054824},
journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)},
year = {2021},
note = {\mbox{doi}:\url{10.1109/TPAMI.2021.3054824}}
2020-09-05 12:40:29 +02:00
}
2020-01-14 14:52:06 +01:00
@inproceedings {dong2020nasbench201,
2021-03-01 13:34:34 +01:00
title = {{NAS-Bench-201}: Extending the Scope of Reproducible Neural Architecture Search},
2019-12-20 10:41:49 +01:00
author = {Dong, Xuanyi and Yang, Yi},
booktitle = {International Conference on Learning Representations (ICLR)},
2020-01-11 08:46:31 +01:00
url = {https://openreview.net/forum?id=HJxyZkBKDr},
2019-12-20 10:41:49 +01:00
year = {2020}
}
2019-11-15 07:15:07 +01:00
@inproceedings {dong2019tas,
title = {Network Pruning via Transformable Architecture Search},
author = {Dong, Xuanyi and Yang, Yi},
booktitle = {Neural Information Processing Systems (NeurIPS)},
2020-08-28 08:02:35 +02:00
pages = {760--771},
2019-11-15 07:15:07 +01:00
year = {2019}
}
@inproceedings {dong2019one,
title = {One-Shot Neural Architecture Search via Self-Evaluated Template Network},
author = {Dong, Xuanyi and Yang, Yi},
booktitle = {Proceedings of the IEEE International Conference on Computer Vision (ICCV)},
2019-12-23 11:29:03 +01:00
pages = {3681--3690},
2019-11-15 07:15:07 +01:00
year = {2019}
}
@inproceedings {dong2019search,
title = {Searching for A Robust Neural Architecture in Four GPU Hours},
author = {Dong, Xuanyi and Yang, Yi},
booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
pages = {1761--1770},
year = {2019}
}
```
2020-01-14 14:52:06 +01:00
2020-01-17 06:35:52 +01:00
# Others
2020-01-14 14:52:06 +01:00
2020-01-17 06:35:52 +01:00
If you want to contribute to this repo, please see [CONTRIBUTING.md ](.github/CONTRIBUTING.md ).
Besides, please follow [CODE-OF-CONDUCT.md ](.github/CODE-OF-CONDUCT.md ).
2020-01-14 14:52:06 +01:00
2021-03-07 10:44:26 +01:00
We use [`black` ](https://github.com/psf/black ) for Python code formatter.
2021-03-18 08:04:14 +01:00
Please use `black . -l 88` .
2021-03-07 04:09:47 +01:00
2020-01-14 14:52:06 +01:00
# License
2020-09-17 13:22:50 +02:00
The entire codebase is under the [MIT license ](LICENSE.md ).