1、概述
AutoSlim是一种one-shot模型优化方法,只要给定网络类型(如MobileNet-v1,ResNet50),给定限制条件(如Flops、latency等),就能自动决定每一层的通道数,以达到最优的模型精度。该优化方法打破了人工设计模型的“half size, double channel”的假设,解决了需要人为评估模型每一层敏感度,人为设置剪枝层/剪枝层类型的痛点,降低了使用剪枝技术的门槛和学习成本。
AutoSlim的算法流程图如下:

- 需要给出一个网络结构
- 训练一个slimmable model作为supernet,这里的slimmable model是指nonuniform universally slimmable networks,即所有层的通道不是通过一个统一的width ratio来进行调节。训练的epochs数大约为常规训练的20%-50%。
- 在验证集上,采用贪婪的方式,使用已训练好的supernet进行前向推理,迭代评估,最后找到满足限制条件,同时精度降低最小的网络,这个网络成为子网。更具体的说,greedily slim是指在一次迭代中,将每一层的通道进行分组,每一组是一个channel bin,尝试剪去每一层的最后一个channel bin,查看前向推理精度,精度最高的那层剪去最后一个channel bin,如此循环,直到满足限制条件。通过分组的方式可以减小搜索空间。
- 重新训练一个或多个子网。
该算法基于一个假设:作为supernet的slimmable model可以作为已知通道配置的独立训练的网络的精度评估器。
2、slimmable networks原理
AutoSlim在slimmable networks的基础上发展起来,具体见[1][2]。下面我们先简单介绍一

AutoSlim是一种one-shot模型优化技术,它能自动确定网络各层通道数,以达到最佳性能与效率。基于slimmable networks,特别是nonuniform US-Net,AutoSlim解决了手动调整模型的难题。通过训练slimmable模型作为超网,然后逐步剪枝得到满足约束条件的子网。在ImageNet上,AutoSlim表现出与人工设计网络相当甚至更高的精度。
最低0.47元/天 解锁文章
7521

被折叠的 条评论
为什么被折叠?



