DeepRebirth: Accelerating Deep Neural Network Execution on Mobile Devices

DeepRebirth: Accelerating Deep Neural Network Execution on Mobile Devices

作者将CNN中的层分为两种:(1)Tensor Layer,如conv,fc;(2)Non-tensor Layer,如pooling,norm。作者发现网络进行前向推理时,Non-tensor layer也会占用不少时间和内存,作者提出用单独的Tensor layer来替换Tensor layer和其后临近的Non-tensor layer能减少网络运行时间。

Streamline Slimming

DeepRebirth: Accelerating Deep Neural Network Execution on Mobile Devices_第1张图片
- norm layer:直接删去
- pooling layer:将pooling layer中的stride移到conv layer中

Branch Slimming

DeepRebirth: Accelerating Deep Neural Network Execution on Mobile Devices_第2张图片

Branch Slimming主要针对的是GoogLeNet中的Inception结构,这个部分将Inception结构中的最左边(conv_1x1)和最右边(pooling+conv_1x1)删去了,仅保留了中间两个分支,调整了输入输出通道,这个部分需要注意网络最后的输出通道数,修改方法没有指定要求

DeepRebirth: Accelerating Deep Neural Network Execution on Mobile Devices_第3张图片

对于一个预训练网络,逐层进行合并,新层采用标准初始方式,学习率为其它层的10倍,最后微调整个网络

结论:实现了3倍加速,2.5被运行内存节省,只带来了0.4的top-5 acc drop

你可能感兴趣的:(CNN,计算机视觉,网络加速)