压缩神经网格(二):融合分支的思想

DeepRebirth: A General Approach For Accelerating deep neural Network Execution on mobile devices

研究背景

通过权重压缩后的神经网络,虽然模型的大小变小了,但是执行时间和耗能上性能还是一般。我们发现,不含tensor参数的层(non-tensor层)的执行时间很长,基于这个问题,论文中提出了两种将non-tensor层融入tensor层的方法:流合并(streaming merging),分支合并(branch merging)。

目标

  1. 正确率损失小
  2. 利用现有的深度学习的框架
  3. 适用于神经网络的不同的结构组件(pooling,LRN, 卷积,全连接)

DEEPREBIRTH

streaming merging(垂直合并)

情况说明;
1. 一般的non-tensor层都跟在一个tensor层后面。
2. 几个连续的层就可以被看成是一个具有非线性转换功能的黑盒子(感觉后面并没有用上。)
融合方案;
1. 将pooling层的步长(stride)直接加入到卷积层里。
2. 直接删掉了LRN和批量归一化层。
压缩神经网格(二):融合分支的思想

Branch merging(水平合并)
  1. 选择用来融入non-tensor的tensor branch的核必须大于non-tensor 。
  2. 将non-tensor branch 合并到 tensor branch后,必须增加tensor baranch的输出通道数。已达到和合并前一样的结构,不至于影响下一层。
  3. 增加输出通道会使得参数tensor变大,为了减少这个,我们可以减少上一层的输出数。
    压缩神经网格(二):融合分支的思想
说明

文中的翻译,全是自己瞎翻译的,重在领会精神。