NAS-Bench-201 快速上手指南:在固定搜索空间中查询 15,625 个神经单元的训练指标

📅 2026/8/27 16:04:51
NAS-Bench-201 快速上手指南:在固定搜索空间中查询 15,625 个神经单元的训练指标
NAS-Bench-201 快速上手指南在固定搜索空间中查询 15,625 个神经单元的训练指标【免费下载链接】NAS-Bench-201NAS-Bench-201 API and Instruction项目地址: https://gitcode.com/gh_mirrors/na/NAS-Bench-201NAS-Bench-201 是一个面向神经架构搜索NAS的可复现基准固定的 cell 搜索空间中共有 15,625 个候选架构每个架构都附带预训练好的指标。本指南带你在几分钟内完成 NAS-Bench-201 API 的安装与初始化并查得任意一个架构的训练损失与精度。项目定位它解决什么问题不适合什么场景它解决的是“不同 NAS 算法各自使用不同搜索空间与数据切分评测结果无法横向比较”的问题。项目把搜索空间固定为 4 节点 cell、5 种操作并预先记录每个架构在 CIFAR-10、CIFAR-100、ImageNet16-120 上的训练曲线、评测指标与计算开销你实现或对比算法时无需重新训练即可获得数据。适合正在实现、评估或对比 NAS 算法以及需要逐架构指标做分析的人。不适合想用其中的结构直接上线跑业务或需要加载完整模型权重的人权重归档文件体量达数百 GB详情以仓库 README 为准。另外仓库在 README 开头已标注归档状态作者的后续工作已转向 NATS-Bench如果你要开展新的研究可先评估是否改用后者但仅用本基准做实验的话仓库内内容是自洽完整的。快速准备安装 API 并拿到数据文件 环境要求不高Python ≥ 3.6.0、PyTorch ≥ 1.2.0。API 有两种获取方式装包或装源码二选一pip install nas-bench-201 # 或克隆源码后以开发模式安装便于阅读与修改实现 # git clone https://gitcode.com/gh_mirrors/na/NAS-Bench-201 # cd NAS-Bench-201 pip install -e .数据文件方面官方推荐NAS-Bench-201-v1_1-096897.pth约 4.7 GB它包含更多 trial 以及全部数据集上 12 epoch 的训练结果另有较早的 v1_0 文件体量较小但覆盖更少。下载渠道列在 README.md 中获取后放到任意目录均可建议直接放入$TORCH_HOME默认~/.torch/因为这是 API 的默认查找位置。若你要自行重新生成数据集或训练模型还需要 CIFAR-10/100 与 ImageNet16-120 的原始训练评测数据链接同样在 README 中。最小可用入口两行代码创建 API 实例仓库里没有可执行的主程序也没有命令行入口真正的起点是实例化NASBench201API类。构造时只需传入 .pth 文件路径文件若已放在 TORCH_HOME 下可直接传None走默认路径。加上verboseFalse可去掉过程日志from nas_201_api import NASBench201API as API api API(path_to_data/NAS-Bench-201-v1_1-096897.pth, verboseFalse) print(len(api), api[1]) info api.query_meta_info_by_index(1) print(info.get_metrics(cifar10, train))验证是否装好len(api)应返回 15625api[i]返回第 i 个架构的字符串编码api.show(1)会打印该架构在各数据集上的指标摘要与 FLOPs、参数量、延迟等开销。关键数据与参数一个 .pth 承载全部状态.pth 是唯一的数据载体基准文件是一个 torch 字典核心键为meta_archs架构字符串列表、arch2infos逐架构的 trial 结果按 12/200 两档超参分开存放、evaluated_indexes已被训练过的架构索引集合。API 构造时会加载并整理这份字典运行过程不会再产生额外状态文件。参数全部通过函数实参传递项目没有独立的配置文件行为完全由你传入的参数决定常见的几组取值datasetcifar10、cifar100、ImageNet16-120另有cifar10-valid它是 CIFAR-10 的另一种切分不要与前两者混用。hp12或200对应“训练到 12 epoch”和“训练到 200 epoch”两套超参。iepoch指定查看某一 epoch 的指标传None则取最后一个 epoch。is_randomTrue随机返回一个 trialFalse返回全部 trial 的均值。get_more_info、query_by_index等查询函数都由这些参数组合而成各参数的精确含义见 API 实现 中的函数注释。关键文件地图先看哪几个文件nas_201_api/api_201.pyNASBench201API的实现查询、模拟训练、架构编码转换都在这里。nas_201_api/api_utils.pyArchResults单架构全部 trial与ResultsCount单个 trial两个数据类以及抽象基类。nas_201_api/init.pyAPI 版本号附带一个test_api自检函数可直接跑通验证数据文件。README.md数据下载链接、完整 API 示例与引用信息。setup.py打包元数据MIT 协议。常见坑与下一步建议⚠️ 最常踩的两处一是 .pth 路径不存在时构造函数会直接断言报错放进 TORCH_HOME 再调API(None)最稳妥二是数据集名称必须精确匹配cifar10与cifar10-valid是两个不同的切分用错名字会直接抛异常。下一步建议先完整运行一次 nas_201_api/init.py 里的test_api做全量自检如果后续要加载某个架构的真实权重再看reload方法与 README 中权重归档的说明。【免费下载链接】NAS-Bench-201NAS-Bench-201 API and Instruction项目地址: https://gitcode.com/gh_mirrors/na/NAS-Bench-201创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考