XNAS is an effective, modular and flexible Neural Architecture Search (NAS) repository, which aims to provide a common framework and baselines for the NAS community. It is originally designed to decouple the search space, search algorithm and performance evaluation strategy to achieve freely combinable NAS.
This project is now supported by PengCheng Lab.
Overview | Installation | Contributing | Citation | License
For more information and API usages, please refer to our Documentation.
Based on a common division of NAS, the project is organized by search space, search algorithm, and evaluation strategy. The project currently supports the content shown below. Each row of the table represents a search algorithm and each column represents the search space.
DARTS | NAS-Bench-201 | SPOS | OFA | |||
---|---|---|---|---|---|---|
DARTS | ☑︎ | ☑︎ | ||||
PDARTS | ☑︎ | ☑︎ | ||||
PCDARTS | ☑︎ | ☑︎ | ||||
SNG | ☑︎ | |||||
ASNG | ☑︎ | |||||
MDENAS | ☑︎ | |||||
DDPNAS | ☑︎ | ☑︎ | ||||
MIGONAS | ☑︎ | |||||
GridSearch | ☑︎ | |||||
DrNAS | ☑︎ | ☑︎ | ||||
SNAS | ☑︎ | ☑︎ | ||||
GDAS | ☑︎ | ☑︎ | ||||
RMINAS | ☑︎ | ☑︎ | ||||
DropNAS | ☑︎ | |||||
SPOS | ☑︎ | |||||
OFA | ☑︎ |
We also provide the interpretation of papers and experimental records for each algorithm. For more information, please refer to the links in the "Docs" column.
Search Spaces | Docs | Official Links |
---|---|---|
DARTS | Github |
|
- | ||
GitHub |
||
NAS-Bench-201 | GitHub |
|
NAS-Bench-1Shot1 | GitHub |
|
SPOS | GitHub |
|
Search Algorithms | Docs | Official Links |
DARTS | Github |
|
PDARTS | Github |
|
PCDARTS | Github |
|
SNG | Github |
|
ASNG | Github |
|
MDENAS | Github |
|
DDPNAS | Github |
|
MIGONAS | Openi |
|
GridSearch | - | |
DrNAS | Github |
|
RMINAS | Openi |
|
DropNAS | Github |
|
SPOS | Github |
|
OFA | Github |
|
Evaluation Strategies | Docs | Official Links |
GitHub |
||
NAS-Bench-201 | GitHub |
|
NAS-Bench-301 | GitHub |
|
NAS-Bench-1Shot1 | GitHub |
We are gradually providing support for more settings.
To run XNAS, python>=3.7
and pytorch=1.9
are required. Other versions of PyTorch
may also work well, but there are potential API differences that can cause warnings to be generated.
For detailed instructions, please refer to get_started.md and data_preparation.md in our docs.
We welcome contributions to the library along with any potential issues or suggestions.
Please refer to Contributing.md in our docs for more information.
If you use this code in your own work, please use the following bibtex entries:
@inproceedings{zheng2022rminas,
title={Neural Architecture Search with Representation Mutual Information},
author={Xiawu Zheng, Xiang Fei, Lei Zhang, Chenglin Wu, Fei Chao, Jianzhuang Liu, Wei Zeng, Yonghong Tian, Rongrong Ji},
journal={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
year={2022}
}
@article{zheng2021migo,
title={MIGO-NAS: Towards fast and generalizable neural architecture search},
author={Zheng, Xiawu and Ji, Rongrong and Chen, Yuhang and Wang, Qiang and Zhang, Baochang and Chen, Jie and Ye, Qixiang and Huang, Feiyue and Tian, Yonghong},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
year={2021},
publisher={IEEE}
}
@inproceedings{zheng2020rethinking,
title={Rethinking performance estimation in neural architecture search},
author={Zheng, Xiawu and Ji, Rongrong and Wang, Qiang and Ye, Qixiang and Li, Zhenguo and Tian, Yonghong and Tian, Qi},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={11356--11365},
year={2020}
}
This project is released under the MIT license. XNAS also uses codes from these repos to build some modules:
- 迁移OFA代码
- 补充101安装测试
- NAS-Bench-Macro
- 多显卡支持