主页

NASLib 是一个模块化且灵活的框架,旨在为社区提供一个通用代码库,以促进关于神经架构搜索 (NAS) 的研究。它提供了用于设计和重用搜索空间的高级抽象,以及与基准测试和评估流程的接口,只需几行代码即可实现和扩展最先进的 NAS 方法。NASLib 的模块化特性使得研究人员可以轻松地在各个组件上进行创新(例如,在重用优化器和评估流程的同时定义新的搜索空间,或者使用现有搜索空间提出新的优化器)。它被设计成模块化、可扩展且易于使用。
NASLib 由 弗莱堡 AutoML 小组 开发,并在 NAS 社区的帮助下,我们不断向库中添加新的搜索空间、优化器和基准测试。如有任何问题或潜在合作,请联系 zelaa@cs.uni-freiburg.de。
可查询的基准测试
NASLib 允许您查询以下(表格型和代理型)基准测试,以获取给定搜索空间、数据集和任务下任何架构的性能。要设置它们,只需从这些 URL 下载基准测试数据文件并将它们放在 naslib/data
中。
基准测试 | 任务 | 数据集 | 数据 URL | 所需文件 |
---|---|---|---|---|
NAS-Bench-101 | 图像分类 | CIFAR10 | cifar10 | naslib/data/nasbench_only108.pkl |
NAS-Bench-201 | 图像分类 | CIFAR10 CIFAR100 ImageNet16-120 |
cifar10 cifar100 imagenet |
naslib/data/nb201_cifar10_full_training.pickle naslib/data/nb201_cifar100_full_training.pickle naslib/data/nb201_ImageNet16_full_training.pickle |
NAS-Bench-301 | 图像分类 | CIFAR10 | cifar10 模型 |
naslib/data/nb301_full_training.pickle naslib/data/nb_models/... |
NAS-Bench-ASR | 自动语音识别 | TIMIT | timit | naslib/data/nb-asr-bench-gtx-1080ti-fp32.pickle naslib/data/nb-asr-bench-jetson-nano-fp32.pickle naslib/data/nb-asr-e40-1234.pickle naslib/data/nb-asr-e40-1235.pickle naslib/data/nb-asr-e40-1236.pickle naslib/data/nb-asr-info.pickle |
NAS-Bench-NLP | 自然语言处理 | Penn Treebank | ptb, 模型 | naslib/data/nb_nlp.pickle naslib/data/nbnlp_v01/... |
TransNAS-Bench-101 | 7 个计算机视觉任务 | Taskonomy | taskonomy | naslib/data/transnas-bench_v10141024.pth |
对于 NAS-Bench-301
和 NAS-Bench-NLP
,您还需要从 这里 安装 NASBench301 API。
设置完成后,您可以按如下方式测试 API 是否正常工作
python test_benchmark_apis.py --all --show_error
您也可以测试任何一个 API。
python test_benchmark_apis.py --search_space <search_space> --show_error
在集群上运行多个实验的脚本
scripts
文件夹包含用于生成配置文件以在各种配置和种子下运行实验的代码。它将这些文件写入 naslib/configs
文件夹。
cd scripts
bash bbo/make_configs_asr.sh
它还包含 scheduler.sh
文件,用于自动读取这些生成的配置文件并使用 SLURM 向集群提交相应的作业。
引用
如果您在自己的工作中使用此代码,请使用以下 bibtex 条目
@misc{naslib-2020,
title={NASLib: A Modular and Flexible Neural Architecture Search Library},
author={Ruchte, Michael and Zela, Arber and Siems, Julien and Grabocka, Josif and Hutter, Frank},
year={2020}, publisher={GitHub},
howpublished={\url{https://github.com/automl/NASLib}} }
@inproceedings{mehta2022bench,
title={NAS-Bench-Suite: NAS Evaluation is (Now) Surprisingly Easy},
author={Mehta, Yash and White, Colin and Zela, Arber and Krishnakumar, Arjun and Zabergja, Guri and Moradian, Shakiba and Safari, Mahmoud and Yu, Kaicheng and Hutter, Frank},
booktitle={International Conference on Learning Representations},
year={2022}
}
NASLib 已用于对 31 个性能预测器进行广泛比较(见上图)。请参阅单独的 readme 文件:预测器 和我们的论文:神经架构搜索中的性能预测器有多强大?
@article{white2021powerful,
title={How Powerful are Performance Predictors in Neural Architecture Search?},
author={White, Colin and Zela, Arber and Ru, Robin and Liu, Yang and Hutter, Frank},
journal={Advances in Neural Information Processing Systems},
volume={34},
year={2021}
}