NAS-Bench-201 快速实战指南:三步查任意架构的成绩
【免费下载链接】NAS-Bench-201NAS-Bench-201 API and Instruction项目地址: https://gitcode.com/gh_mirrors/na/NAS-Bench-201
NAS-Bench-201 是神经架构搜索基准工具,为 15625 个候选 cell 预先算好训练指标,你不训练,直接查任意架构的性能。
它解决什么问题
如果你刚写完一个 NAS 算法、需要在公开基准上给出数字,这是最直接的选项。搜索空间固定为 4 个节点和 5 个操作,共 15625 个 cell 候选;每个架构有 12 与 200 epoch 两套超参,在 CIFAR-10、CIFAR-100、ImageNet16-120 上记录了 loss、top-1 精度、FLOPs、参数量和时延。你的算法只要输出架构字符串,API 就能直接给出该架构的历史成绩。
仓库里哪些文件真正决定行为
NAS-Bench-201/ └── nas_201_api/ ├── api_201.py # NASBench201API,唯一 API 类 ├── api_utils.py # ArchResults / ResultsCount 数据容器 └── __init__.py- 入口是 nas_201_api/api_201.py,NASBench201API 承接全部查询;
- 数据载体是
.pth文件,不在仓库里,要单独下载NAS-Bench-201-v1_1-096897.pth(约 4.7G); - ArchResults 存"一个架构的全部试验",ResultsCount 存"一次试验",查询方法返回的就是这两者;
pip install -e .后即可导入包,setup.py 只声明包名与版本。
三步跑通最小示例
第一步,环境要 Python ≥ 3.6、PyTorch ≥ 1.2.0。克隆仓库git clone https://gitcode.com/gh_mirrors/na/NAS-Bench-201,进目录执行pip install -e .;再把 benchmark 文件下载到一个你记得的目录。
第二步,初始化 API,把路径换成你自己的:
from nas_201_api import NASBench201API as API api = API('NAS-Bench-201-v1_1-096897.pth', verbose=False) api.show(1) # 打印第 2 个架构的 loss/精度/FLOPs第三步,跑一下。len(api)是 15625,即搜索空间候选 cell 总数;api[i]取第 i 个架构字符串,query_meta_info_by_index(i)返回 ArchResults 对象,按 key 取指标值。另外.pth放在~/.torch/下时,API 可直接传None,它会自动找默认文件。
跑多个实验时参数怎么管
反复换数据集文件与查询条件时,别把路径写死在脚本里。建一份config.yaml,存两行:
db_path: /data/NAS-Bench-201-v1_1-096897.pth,verbose: false
脚本里读出来传给 API 初始化。外部化的理由:数据集路径是每次换实验唯一变的变量,单独隔出,查询代码不用动。
再往下可以做什么
query_index_by_arch能用字符串反查架构索引,get_more_info能取逐 epoch 的 loss,字段含义看 nas_201_api/api_utils.py 的注释。⚠️ 最高频的坑是文件没放~/.torch/且没设TORCH_HOME,默认路径落空;另注意作者已把维护转移到 NATS-Bench,本仓库处于归档状态。
【免费下载链接】NAS-Bench-201NAS-Bench-201 API and Instruction项目地址: https://gitcode.com/gh_mirrors/na/NAS-Bench-201
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考