Training with very large image sizes is slow。已有研究表明:EfficientNet的大图像尺寸会导致显著的内存占用。由于GPU/TPU的总内存是固定的,我们不得不采用更小的batch训练这些模型,这无疑会降低训练速度。一种简单的改进方式是采用FixRes,即采用更小的图像尺寸进行训练。如下表所示:采用更小的图像块会导致更小的计算量、更大的batch,可以加速训练(2.2x);与此同时,更小的图像块训练还会导致稍高的精度。在后续章节中,我们会提出一种更先进的训练方法:通过渐进式调整图像尺寸和正则化因子达到训练加速的目的。
Depthwise convolutios are slow in early layers。EfficientNet的核心模块采用了depthwise卷积,它具有更少的参数量和计算量(但往往无法充分利用现有加速器)。近来,提出的Fused-MBConv可以更充分的利用手机/服务端的加速器。它采用常规卷积替换了MBConv中的深度卷积与 卷积,见下图。
Equally scaling up every stage is sub-optimal。EfficientNet采用复合测试对所有stage均衡缩放。比如当depth系数为2时,网络的所有阶段的层数加倍。然而,不同阶段在训练速度与参数量方面并非均等贡献。我们将采用非均匀缩放策略对后面的stage添加更多的层。此外,针对EfficientNet的采用大尺寸图像导致大计算量、训练速度降低问题,我们对缩放规则进行了轻微调整并约束最大图像尺寸到稍小值。
Training-Aware NAS and Scaling
至此,我们得到了多种加速训练的设计方案。为更好的组合这些方案,我们提出了一种训练感知NAS。
NAS Search。我们这里采用的NAS框架主要是基于EfficientNet与MnasNet,但对参数量与训练高效性同时进行优化。具体来说,我们采用EfficientNet作为骨干网络,搜索空间为类似EfficientNet的基于stage的空间,它包含MBConv、Fused-MBConv等卷积操作,层数、核尺寸、扩展比例;另一方面,我们通过这两种策略降低搜索空间:(1)移除不避免的搜索选项,比如pooling算子;(2) 复用EfficientNet中的通道数信息。由于搜索空间更小,我们可以采用简单的随机搜索进行更大网络的搜索(比如大小类似EfficientNet-B4)。具体来说,我们采样1000个模型,每个模型训练10个epoch。搜索奖励包含模型精度A、归一化训练时长S、参数量P,并通过加权方式组合 。