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

xiaoxiao2021-02-28  112

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

转载请注明原文地址: https://www.6miu.com/read-36260.html

最新回复(0)