引言
量化模型是一种模型加速方法的总称,其中包括:二值化网络、三值化网络和深度压缩等。
二值化网络
在构建模型时使用的精度一般都是32的浮点数,随着网络模型规模的增大,需要的内存也越来越大,而浮点数是由一位符号位,八位指数位和尾数位三个部分组成的,完成浮点加减运算的操作步骤为:
1、0操作数的检查,如果至少有一个参与运算的数为0,可直接得到结果。
2、比较阶码大小并完成对阶
3、尾数进行加或减运算
4、结果规格化并进行舍入处理
这个带来的问题就是网络在运行的过程中不仅需要大量的内存还需要大量的计算资源。
二值化网络在训练时,将权重和输出置为1或-1,
-
第一种直接将大于等于0的参数置为1,小于0的置为-1
-
第二种将绝对值大于1的参数设为1,将绝对值小于1的参数根据距离的远近按概率随机设置。
三值化网络
深度压缩
深度压缩主要分为三个主要的部分:剪枝、量化和哈夫曼编码。
- 剪枝,将权重小于一定阈值的权重直接抛弃
-
量化,将接近的值变成一个数。
- 哈夫曼编码