CNN网络加速--Performance Guaranteed Network Acceleration via High-Order Residual Quantization

来源:互联网 发布:双色球排列组合软件 编辑:程序博客网 时间:2024/05/17 07:15

Performance Guaranteed Network Acceleration via High-Order Residual Quantization
ICCV2017

本文是对 XNOR-Networks 的改进,将CNN网络层的输入 进行高精度二值量化,从而实现高精度的二值网络计算,XNOR-Networks 也是对每个CNN网络层的权值和输入进行二值化,这样整个CNN计算都是二值化的,这样计算速度快,占内存小。

对CNN网络模型进行加速目前主要有三类方法:
1)Parameter Pruning 网络裁剪,去掉权值接近0的 连接 rounding off near-zero connections,再重新训练精简后的网络
2)Model Compression,网络结构稀疏逼近,这种技术对每个模型都是专家经验的设计, not a general plug-in solution, low-rank approximated
3)Network Quantization,网络参数量化,对模型的参数和网络层的输入进行二值化,如XNOR

本文就是在 XNOR-Networks 的基础上,对网络层的输入二值化进行改进,实现高精度二值量化。

我们首先来看看 XNOR-Networks
文献【21】提出了两个二值化网络:BWN and XNOR
BWN uses binary weights to speed up the computation. 网络层权值二值化
XNOR is based on BWN and realizes the binarization of input data in a convolutional layer. 网络层的 输入和 权值都二值化

对于一个网络的卷积层,假定其 输入时 I ,滤波器权值是 W,该卷积层需要进行的卷积运算可以表示为 I∗W
BWN 的思路是对 W 进行二值化
这里写图片描述
这里写图片描述

用二值权值训练一个L层的网络流程如下:
这里写图片描述

XNOR 在BWN 基础上,对网络层输入进行二值量化 input tensor X: X ≈ βH, H is binary filter
这里写图片描述
这里写图片描述

3.2. High-Order Residual Quantization
XNOR 的量化步骤如下所示:
这里写图片描述
那么这种量化的误差是多少了?
我们定义 first-order residual tensor 这里写图片描述
我们对 R1再进行二值量化
这里写图片描述
输入的二阶残差量化表达式为 Order-Two Residual Quantization
这里写图片描述
我们得到对应的量化结果:
这里写图片描述

对于 Order-K Residual Quantization
这里写图片描述

3.3. The HORQ Network
Tensor Reshape if we reshape the input tensor and weight tensor into two matrices respectively, the convolution operation can be considered as a matrix multiplication
怎么讲二值化的参数 变为矩阵形式
这里写图片描述
这个可以参考 opencv 中图像数据是怎么表示的,图像数据是怎么保存在内存中的

Convolution Using Order-Two Residual Quantization 二阶量化怎么卷积
这里写图片描述

Training HORQ Network
这里写图片描述

4 Experiments

MNIST
这里写图片描述

HORQ vs XNR on CIFAR-10
这里写图片描述

Model size comparison: Binary vs Float
这里写图片描述

speedup ratio
这里写图片描述
这里写图片描述

原创粉丝点击