
摘要
神经架构搜索(NAS)通过自动设计有效的神经网络架构产生了重大影响。然而,传统NAS算法的计算需求极高(例如10^4 GPU小时),这使得在大规模任务上(如ImageNet)直接搜索架构变得困难。可微分NAS可以通过网络架构的连续表示来减少GPU小时数的成本,但其面临高GPU内存消耗的问题(随着候选集大小线性增长)。因此,它们需要利用代理任务,例如在较小的数据集上进行训练、仅学习几个模块或只训练几轮。这些在代理任务上优化的架构并不能保证在目标任务上达到最优效果。本文中,我们提出了无需代理任务的ProxylessNAS,可以直接为大规模目标任务和目标硬件平台学习架构。我们解决了可微分NAS中的高内存消耗问题,并将计算成本(GPU小时数和GPU内存)降低到常规训练的水平,同时仍然允许较大的候选集。CIFAR-10和ImageNet上的实验验证了直接性和专业化的有效性。在CIFAR-10上,我们的模型仅使用5.7M参数就达到了2.08%的测试误差,优于先前最先进的AmoebaNet-B架构,而参数量减少了6倍。在ImageNet上,我们的模型比MobileNetV2提高了3.1%的Top-1精度,并且根据测量的GPU延迟速度快了1.2倍。我们还应用ProxylessNAS针对硬件进行神经架构的专业化设计,直接使用硬件指标(如延迟),并为高效的CNN架构设计提供了见解。
代码仓库
mit-han-lab/ProxylessNAS
pytorch
GitHub 中提及
mit-han-lab/haq-release
pytorch
GitHub 中提及
schoolboy-ju/Proxyless-NAS
pytorch
GitHub 中提及
ZTao-z/ProxylessNAS
pytorch
GitHub 中提及
mit-han-lab/once-for-all
pytorch
GitHub 中提及
NVlabs/unas
pytorch
GitHub 中提及
mit-han-lab/haq
pytorch
GitHub 中提及
mit-han-lab/amc
pytorch
GitHub 中提及
ito-rafael/once-for-all-2
pytorch
GitHub 中提及
osmr/imgclsmob
mxnet
GitHub 中提及
seulkiyeom/once-for-all
pytorch
GitHub 中提及
dapeter/nas-for-kws
pytorch
GitHub 中提及
AhmadQasim/proxylessnas-dense
pytorch
GitHub 中提及
MIT-HAN-LAB/ProxylessNAS
官方
pytorch
GitHub 中提及
songhan/SqueezeNet-Residual
GitHub 中提及
songhan/DSD
pytorch
GitHub 中提及
lukesin/nas-for-kws-2
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| architecture-search-on-cifar-10-image | Proxyless-G + c/o | Params: 5.7M Percentage error: 2.08 |
| image-classification-on-cifar-10 | Proxyless-G + c/o | Percentage correct: 97.92 |
| image-classification-on-imagenet | Proxyless | Number of params: 4.0M Top 1 Accuracy: 74.6% |
| neural-architecture-search-on-imagenet | ProxylesNAS | Accuracy: 75.1 MACs: 581M Params: 5.1M Top-1 Error Rate: 24.9 |