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