Tiny-NAS 是一个高性能的神经结构搜索(NAS)框架,用于在GPU和移动设备上自动设计具有高预测精度和高推理速度的深度神经网络。
Zen-NAS 是一种典型的 Tiny-NAS 方法,它基于自主设计的 Zen-Score 来对网络结构进行打分与排序,从而搜索最优网络结构。ZenNet 是基于 Zen-NAS 设计出的高效网络结构。
ZenNet 在ImageNet 数据集上的 top-1 accuracy 指标精度与 EfficientNet-B5 (~83.6%) 相当,但是推理速度更快(4.9x times faster on V100, 10x times faster on NVIDIA T4, 1.6x times faster on Google Pixel2)。
ZenNet 是基于 Tiny-NAS (Zen-NAS) 算法设计出的高效的卷积网络结构。
本 demo 只提供 zennet_imagenet1k_latency12ms_res22 backbone,其它网络结构可以从README 中获取。
使用方式:
使用范围:
目标场景:
作为通用 backbone 可以被集成到各种任务中作为特征提取器。
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
tinynas_classification = pipeline(
Tasks.image_classification,
model='damo/cv_tinynas_classification')
result = tinynas_classification('data/test/images/image_wolf.jpeg')
print(f'recognition output: {result}.')
考虑 GPU 精度等的差异,可能带来一定的性能差异
使用标准 imagenet-1k 数据集
训练时:随机裁剪一部分图片,然后 resize 为 224x224,再随机翻转和颜色抖动
推理时:进行中心裁剪
初始 learning rate 为0.4,衰减方式为cosine,weight decay 为0.00004,warmup-epochs 为5,一共迭代 200 epoch
model | resolution | # params | FLOPs | Top-1 Acc | V100 | T4 | Pixel2 |
---|---|---|---|---|---|---|---|
zennet_imagenet1k_flops400M_SE_res224 | 224 | 5.7M | 410M | 78.0% | 0.25 | 0.39 | 87.9 |
zennet_imagenet1k_flops600M_SE_res224 | 224 | 7.1M | 611M | 79.1% | 0.36 | 0.52 | 128.6 |
zennet_imagenet1k_flops900M_SE_res224 | 224 | 19.4M | 934M | 80.8% | 0.55 | 0.55 | 215.7 |
zennet_imagenet1k_latency01ms_res224 | 224 | 30.1M | 1.7B | 77.8% | 0.1 | 0.08 | 181.7 |
zennet_imagenet1k_latency02ms_res224 | 224 | 49.7M | 3.4B | 80.8% | 0.2 | 0.15 | 357.4 |
zennet_imagenet1k_latency03ms_res224 | 224 | 85.4M | 4.8B | 81.5% | 0.3 | 0.20 | 517.0 |
zennet_imagenet1k_latency05ms_res224 | 224 | 118M | 8.3B | 82.7% | 0.5 | 0.30 | 798.7 |
zennet_imagenet1k_latency08ms_res224 | 224 | 183M | 13.9B | 83.0% | 0.8 | 0.57 | 1365 |
zennet_imagenet1k_latency12ms_res224 | 224 | 180M | 22.0B | 83.6% | 1.2 | 0.85 | 2051 |
EfficientNet-B3 | 300 | 12.0M | 1.8B | 81.1% | 1.12 | 1.86 | 569.3 |
EfficientNet-B5 | 456 | 30.0M | 9.9B | 83.3% | 4.5 | 7.0 | 2580 |
EfficientNet-B6 | 528 | 43M | 19.0B | 84.0% | 7.64 | 12.3 | 4288 |
@inproceedings{ming_zennas_iccv2021,
author = {Ming Lin and Pichao Wang and Zhenhong Sun and Hesen Chen and Xiuyu Sun and Qi Qian and Hao Li and Rong Jin},
title = {Zen-NAS: A Zero-Shot NAS for High-Performance Deep Image Recognition},
booktitle = {2021 IEEE/CVF International Conference on Computer Vision, {ICCV} 2021},
year = {2021},
}
If you are interested in ZenNAS, welcome to our github!