一个利用低精度和量化技术实现的神经网络压缩与加速方案。 个人认为,这是低精度量化方面少有的具有一定工程可行性的方案(虽然文中没有给出详细的模型大小速度方面的指标)。
文章链接: 《ShiftCNN: Generalized Low-Precision Architecture for Inference of Convolutional Neural Networks》
模型转换示例代码: https://github.com/gudovskiy/ShiftCNN
相关背景
(1) 低精度数据表达
通常神经网络计算使用float32位。 有些人尝试用16bit或者8bit数据,但由于不再能使用现成的一些BLAS库,导致实际部署效率可能和设想相差较多。 另外,像BinaryNet(-1,+1)、ternary quantization(-1,0,+1)等,虽然可以采用移位操作来代替乘法,但往往导致网络性能下降较多。
(2) 卷积计算方式
除了在频率域计算卷积之外,利用矩阵乘法结合BLAS库是采用最多的卷积计算方法。 此外,也有一些采用查表法计算卷积的&#x