DeepShift: Towards Multiplication-Less Neural Networks
PDF: https://arxiv.org/pdf/1905.13298.pdf
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks
DeepShift 用移位和求反运算代替乘法,可有效缓解计算成本过高的问题.
1 DeepShift Networks
1-1 bit-wise shift (按位移位)
如果输入数字的基本二进制表示形式A为整数或固定点格式,则向左(或右)的逐位移位在数学上等效于将其乘以2的正s(或负s次幂):
1-2 negation operation (求反运算)
求反运算在数学公式 :
1-3 DeepShift原理示意图
用按位移位和位取反来代替乘法示意图
2 LinearShift Operator (全连接移位)
基于矩阵运算的全连接算子的前向传播 (forward pass)
全连接算子的反向传播(backward pass)
全连接移位算子(shift linear operator)
3 ConvShift Operator (卷积移位)
基于矩阵运算的卷积算子的前向传播 (forward pass)
卷积算子的反向传播(backward pass)
卷积移位算子(shift convolution operator)