Page 119 - 《软件学报》2021年第8期
P. 119

龚成  等:一种超低损失的深度神经网络量化压缩方法                                                       2401


                                         Table 4   Results of μL2Q across various bit widths
                                             表 4   μL2Q 在不同比特位宽下的结果
                       位宽                                    AlexNet       ResNet18     MobileNetV2
                       (W/A)   Lenet5  CifarNet  VGG-like  Top1   Top5   Top1   Top5    Top1   Top5
                       32/32   99.40    81.82    93.49    60.01  81.90   69.60  89.24  71.30   90.10
                       1/32    99.45    79.28    90.06    54.47  77.41   63.40  84.73  49.65   74.00
                       2/32    99.47    80.26    92.18    59.05  81.04   68.11  88.13  63.90   84.91
                       4/32    99.51    81.32    93.35    59.88  81.59   69.15  88.66  71.49   90.25
                       8/32    99.47    81.66    93.53    61.40  82.87   70.23  89.22   72.23   90.42
                        2/8    99.32    80.53    92.31    58.95  81.00   67.62  87.70  64.39   85.23
                        4/8    99.31    81.34    93.06    59.87  81.75   69.01  88.53  71.70   90.24
                        8/8    99.30    81.98    93.38    61.13  82.77   70.08  89.12  72.28   90.61

                    •  激活值量化
                    与权值不同,DNN 模型中每层的激活值会随着输入变化而变化.这意味着如果进行激活值量化,则必须在
                 每次推理时进行实时的计算.为了减少实时计算量,本文对量化参数(α,β)进行离线计算,以提升推理效率.本文
                 利用指数移动平均算法,在模型训练过程中来估计每层的激活值在整个训练集上的量化参数,并离线应用到模
                 型推理的过程中.表 4 给出了基于μL2Q 进行 8 比特激活值量化的实验结果.在表 4 中,与具有全精度激活值的模
                 型相比,具有 2/4/8 比特权值和 8 比特激活值的量化模型的推理精度仅仅下降不到 0.49%(在 ResNet18 上),0.29%
                 (在 VGG-like 上),0.27%(在 AlexNet 上).在 ImageNet 数据集和 MobileNetV2 上,基于 8 比特μL2Q 的激活值量化
                 的结果比全精度激活值的量化模型的结果分别高了 0.49%(2 比特权值量化),0.21%(4 比特权值量化)和 0.05%(8
                 比特权值量化).实验结果表明,μL2Q 可应用于激活值量化并且不会造成额外的精度损失,还能降低推理过程中
                 的内存占用和计算消耗.
                    •   模型存储容量与运行时内存占用
                    表 5 中给出了基于μL2Q 的不同量化位宽下,不同量化模型的存储容量和运行时内存占用.模型存储容量主
                 要包括模型权值的存储,运行时内存占用是指模型推理一张图片时所需耗费的权值和激活值的内存占用.在 1
                 比特权值量化下,模型存储容量压缩率可达 32 倍,比如 CifarNet 的模型存储容量甚至只有 10.64KB.全精度模型
                 AlexNet 的存储容量高达 203.38MB,在经过μL2Q 压缩后,其模型存储容量最小可至 6.36MB,被压缩了 96.87%,
                 极大地降低了模型的存储代价.此外,LeNet5,CifarNet 和 VGG-like 的运行时内存占用最低可达 360.54KB(1/32),
                 64.39KB(2/8)和 1.57MB(2/8),其运行时内存占用量比全精度的模型(32/32)分别降低了 94.71%,87.44%和
                 92.97%.在基于 ImageNet 训练的模型 AlexNet,ResNet18 和 MobileNetV2 上,其运行时内存占用降至 8.79MB,
                 5.61MB 和 7.55MB,比全精度模型(32/32)分别减少了 95.73%,90.24%和 81.40%.此外,低位宽的权值和激活表示
                 也将有效地降低计算资源消耗.μL2Q 可在极低的模型存储容量和运行时内存占用的情况下,保证极低的量化
                 损失,提升量化模型的精度.比如表 4 和表 5 中,具有 2 比特权值和 8 比特激活值的 MobileNetV2 规模只有
                 867.69KB,运行时内存占用只有 7.55MB,但其在 ImageNet 上的 top1 精度可达 64.39%.极低的存储容量和运行
                 时内存占用,确保了基于μL2Q 量化的 DNN 模型可广泛部署到存储和计算资源受限的边缘设备上,而且模型精
                 度能够提供可靠的推理服务.
                               Table 5    Model size and runtime memory of μL2Q across various bit widths
                                     表 5   μL2Q 在不同比特位宽的模型大小和运行时内存占用
                    位宽       Lenet5       CifarNet    VGG-like      AlexNet     ResNet18   MobileNetV2
                    (W/A)   规模   内存    规模     内存     规模    内存    规模     内存     规模    内存    规模    内存
                    32/32  6.65M  6.81M  340.39K 512.85K 21.40M 22.33M 203.38M 205.81M 46.74M 57.48M 13.88M 40.60M
                    1/32  207.92K 360.54K  10.64K  183.09K 668.87K  1.59M  6.36M  8.79M  1.46M  12.20M  433.85K  27.15M
                    2/32 415.84K  568.46K  21.27K  193.73K  1.34M  2.26M  12.71M  15.15M  2.92M  13.66M  867.69K  27.58M
                    4/32  831.68K  984.30K  42.55K  215.00K  2.68M  3.60M  25.42M  27.86M  5.84M  16.58M 1.74M 28.45M
                    8/32   1.66M   1.82M  85.10K  257.55K  5.35M  6.27M  50.84M  53.28M  11.68M 22.43M 3.47M 30.19M
                     2/8  415.84K 454.00K  21.27K  64.39K   1.34M  1.57M  12.71M  13.32M  2.92M  5.61M  867.69K  7.55M
                     4/8  831.68K 869.84K  42.55K  85.66K  2.68M  2.91M  25.42M  26.03M  5.84M  8.53M  1.74M  8.41M
                     8/8   1.66M   1.70M  85.10K  128.21K  5.35M  5.58M  50.84M  51.45M  11.68M 14.37M 3.47M 10.15M
   114   115   116   117   118   119   120   121   122   123   124