一种基于结构搜索的深度神经网络混合精度量化方法与流程

文档序号:22917038发布日期:2020-11-13 15:59阅读:275来源:国知局
一种基于结构搜索的深度神经网络混合精度量化方法与流程

本发明属于深度卷积神经网络压缩和加速领域,具体涉及一种基于结构搜索的深度神经网络混合精度量化方法。



背景技术:

近年来,深度神经网络在智能图像处理领域取得了突破性进展,具有广泛的应场景。深度卷积神经网络中存在大量的网络权重参数与计算,因此目前多数深度神经网络算法部署在cpu或gpu等高性能设备上。但是cpu、gpu的高性能需要大量的功耗支持,因此在一些功耗严格受限的应用场景中难以应用。高性能、低功耗嵌入式硬件设备为解决这一问题提供了全新的解决思路,因此基于嵌入式设备构建深度神经网络实现平台日益成为工程应用中的研究热点,基于fpga设计深度神经网络硬件加速器是其中最为广泛的解决方案。但是该方案也存在一定的技术难点,fpga片内逻辑与存储资源有限,难以满足深度神经网络的超高并行度计算与海量数据存储。因此在利用fpga实现深度神经网络前,需要对深度神经网络的计算与存储进行有效压缩。深度神经网络量化是最为有效的网络模型压缩方法,能够将网络中密集计算与海量存储由浮点型转化为整数型,同时优化计算与存储,大幅降低硬件实现所需的逻辑与存储资源开销。但是,目前已有的深度神经网络量化方法也存在一些问题,这些方法多采用手工设计量化位宽的方式,并且网络中所有计算层均被设置了相同的量化位宽。在低位宽时,网络性能损失较大;在高位宽时,网络模型压缩率不足,难以在网络性能与模型压缩率间取得平衡。



技术实现要素:

有鉴于此,本发明提供了一种基于结构搜索的深度神经网络混合精度量化方法,该方法利用目前最为先进的神经网络结构搜索算法,独立搜索网络中每一个卷积层和全连接层的最优量化位宽,实现深度神经网络的混合精度网络量化,在保证网络精度的前提下,最大程度压缩网络模型,实现网络性能与模型压缩率间的最优平衡。

实现本发明的技术方案如下:

一种基于结构搜索的深度神经网络混合精度量化方法,包括以下步骤:

步骤一、为网络中每个卷积层和全连接层建立搜索空间,每个搜索空间均由一组与原始计算层功能、维度相同的量化计算层组成,所述量化计算层采用不同的量化位宽;

步骤二、采用结构参数描述搜索空间中的所有候选量化层的概率分布,并建立搜索模块,搜索模块的输出是搜索空间中所有候选层的概率加权和,利用搜索模块替换深度神经网络中的卷积层和全连接层,并保持其他功能层不变,即得到超网络;

步骤三、采用基于梯度的网络模型结构搜索算法,在训练集和验证集上交替训练超网络中的权重参数与结构参数;训练结束后根据结构参数计算每一个搜索模块中各候选层概率,选取最大概率候选层从而确定量化位宽。

进一步地,所述交替训练的算法为:

其中,分别表示网络在训练集和验证集的基础损失函数,w和α分别表示超网络中的权重参数与结构参数,表示在结构参数为α时的最优权重参数,是额外的存储开销损失函数,γ是的权重,用于调整基础损失与存储开销损失的比例;存储开销损失用于促进网络模型的压缩率收敛到一个设定的预期值r,其定义为:

其中,d表示网络平均存储开销与预期值间的距离,t为该距离的阈值;距离d的具体定义为:

其中,l是搜索块的个数,为搜索空间,为第l个候选层,函数ck(·)是用来计算第k个搜索模块中候选层的权重参数存储开销,pk(·)为第k个搜索模块中候选层的概率分布,m是全精度网络的总模型大小。

有益效果:

(1)本发明通过搜索算法为每一个卷积层和全连接层的选取最优量化位宽,实现深度神经网络的混合精度计算,能够最大程度压缩网络模型,并保证网络性能。

(2)本发明采用了基于梯度的模型搜索算法,相比于其他算法,实现所需的gpu设备少,且训练时间远低于其他搜索算法,能够快速获得混合精度量化的深度神经网络模型。

附图说明

图1为搜索模块结构示意图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明提供了一种基于结构搜索的深度神经网络混合精度量化方法,具体过程如下:

步骤一、建立搜索空间

为了完成计算层(包括卷积层与全连接层)的量化位宽搜索任务,首先需要为网络中每个计算层建立搜索空间。对于卷积层,其搜索空间定义为:

其中,分别表示输入特征张量和权重张量,分别表示第l个候选层的量化位宽,m为可选位宽的个数。由于特征图和权重参数可以选择不同的量化位宽,因此搜索空间中候选层的个数为m×m个。当m较大时,候选层数目会变得过多,这会造成模型搜索算法难以部署在gpu上。为了减少搜索空间,本发明将每一个候选层的特征图与权重参数的量化位宽设置为相同的固定数值,此时搜索空间只有m个候选层,降低搜索时对gpu设备的需求。公式(1)可改写为:

类似的,全连接层的搜索空间定义如下式所示:

步骤二、建立超网络

超网络是能够覆盖搜索过程中所有量化位宽可能的网络架构,也是搜索过程中训练的目标网络。利用搜索模块替换深度神经网络中的卷积层和全连接层,并保持其他功能层不变,此时即为超网络。搜索模块结构如附图1所示,vm和vn分别是输入和输出节点。这两个节点之间的第l条边表示搜索空间中的第l个候选层操作。可利用结构参数来描述搜索空间中候选量化层的概率分布γ。第l个候选层的概率可以表示为:

在搜索过程中,从搜索空间中根据概率分布抽取一个候选层作为搜索模块的计算层。但是抽取操作是不可导的,因此无法使用常规的网络反向传播来更新结构参数,从而更新搜索模块中的概率分布。为了解决这一问题,本发明采用gumbel-softmax函数来近似抽样操作,第l个候选层的近似概率定义为:

其中,gl是独立同分布的gumbel噪声,τ是gumbel-softmax函数的温度参数。当τ→∞时,概率分布γ变为均匀分布,当τ→0时,概率分布γ变为抽样函数。输出节点是搜索空间中所有候选层的概率加权和,因此输出节点可表示为:

根据上述公式即可使用常规的网络反向传播来更新结构参数。

步骤三、搜索量化位宽

此步骤利用超网络搜索每一个计算层的最优量化位宽。一般的网络模型结构搜索是一个二级优化问题,其目标是训练权重参数使得训练集上网络损失最小,训练结构参数使得验证集上网络损失最小。本发明不仅关注常规的网络损失,还关注网络的模型大小。因此,本发明的优化目标可以表述为:

其中,分别表示网络在训练集和验证集的基础损失函数,w和α分别表示超网络中的权重参数与结构参数,表示在结构参数为α时的最优权重参数。上式中,是额外的存储开销损失函数,γ是的权重,用于调整基础损失与存储开销损失的比例。存储开销损失用于促进网络模型的压缩率收敛到一个设定的预期值r,其定义为:

其中,d表示网络平均存储开销与预期值间的距离,t为该距离的阈值。当距离超过阈值时,网络存储开销超出可接受范围,训练过程优化网络存储开销;当距离小于阈值是,网络存储开销在可接受范围内,训练过程的优化目标不受存储开销影响。这种处理方式能够降低训练过程中量化位宽波动,在存储开销的可接受范围内,网络训练更加专注于优化网络性能。距离d的具体定义为:

其中,l是搜索块的个数,函数ck(·)是用来计算第k个搜索模块中候选层的权重参数存储开销,pk(·)为第k个搜索模块中候选层的概率分布,m是全精度网络的总模型大小。

在搜索过程中,在训练集上的权重参数、在验证集上优化结构参数,两个优化过程交替进行。同时在训练过程中逐步降低gumbel-softmax函数中的温度参数τ,从而逐步选出最优的量化位宽。在搜索完成后,在测试集上进行测试并选出网络性能最优的模型。利用最优模型,根据公式(5)计算每个搜索块所有候选层的概率,选择概率最大候选层的量化位宽作为原始计算层的量化位宽,从而得到混合精度量化网络。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1