深度神经网络模型量化

       对模型进行参数量化的主要目的为减小模型存储体积,解决模型在移动设备的存储问题与计算过程中的数据传输瓶颈问题。参数量化还用来改变模型参数的数据表示方法,通常模型参数类型为浮点型,而有些硬件平台仅支持定点数据类型,需对浮点数进行定点化处理 。

     参数量化主要分为两个主要研究方向一个研究方向是权值共享即多个网络连接的权重共用一个权值主要代表性研究工作如下文献【1】利用均值聚类算法计算权重的多个聚类中心将权重量化为距离最近的聚类中心通过训练微调的方式对

权重进行补偿文献【2】设 计 了 一 种 新 型 的 网 络 架构hashnet利用哈希函数随机将网络连接权重分组到哈希hash bucket),每个哈希桶内的网络连接共享相同的权重参数该方法与特征哈希类似feature hashing),将高维数据降到低维空间该方法可显著减小模型体积并对输出精度影响较小文献[43]提出一个量化神经网络架构(Q-CNN),基于均值聚类算法加速和压缩模型的卷积层和全连接层通过减小每层输出响应的估计误差可实现更好的量化结果并提出一种有效的训练方案抑制量化后的多层累积误差 。

     参数量化的第二个研究方向是模型权重的低比特表示方法文献【3】对深 度 卷 积 神 经 网 络 模 型 参数的数据表示方法进行研究针对浮点数和定点数建立分析模型探索两种数据表示形式对模型性能的影响以及相应硬件的实现代价文献【4】开发并测试8-bit近似算法32bit的梯度和激活值压缩到8-bit通过GPU集群测试模型和数据的并行化性能在保证模型预测精度的条件下提出的方法取得两倍 的 数 据 传 输 加速文献【5】基于maxout模型在个数据集上对浮点型定点型和动态定点型种运算方式进行评估分析计算精度对最终训练误差的影响实验显示低精度的运算不仅可应用于模型预测还可用于模型训练过程但模型参数激活值和梯度值需根据实际应用条件而采用不同的精度文献【6】提出一种模型近似框架 ristretto用于分析模型卷积层和全连接层的权重和输出的数值分辨率进而将浮点型参数转化为定点型数值并通过训练过程对定点型模型进行微调在容许误差为1%的条件下caffenetsqueezenet压缩到8-bit参数形式


猜你喜欢

转载自blog.csdn.net/u012101561/article/details/80868352