神经网络的量化策略确定方法、图像识别方法和装置制造方法及图纸

技术编号:22330841 阅读:44 留言:0更新日期:2019-10-19 12:24
本申请涉及一种神经网络的量化策略确定方法、图像识别方法、装置、计算机设备和可读存储介质。该方法包括:获取预设的针对目标神经网络的多种量化策略;其中,每个量化策略用于表征目标神经网络中各网络层的运算属性的值,目标神经网络在各个量化策略下具有对应的模型参数;根据目标神经网络采用不同量化策略下的模型参数对测试样本进行测试的测试精度,从目标神经网络对应的多种量化策略中选择至少一种量化策略作为目标量化策略。采用本方法确定的目标量化策略能够在对目标神经网络压缩的同时,避免目标神经网络的预测精度严重下降的问题。

【技术实现步骤摘要】
神经网络的量化策略确定方法、图像识别方法和装置
本申请涉及神经网络
,特别是涉及一种神经网络的量化策略确定方法、图像识别方法、装置、计算机设备和可读存储介质。
技术介绍
随着神经网络技术的发展,出现了神经网络量化技术,主要是对神经网络中每个网络层(如卷积层和全连接层)中的模型参数值、激活值(输出值或输入值)等进行压缩,降低模型参数值的位宽、激活值的位宽等,从而实现压缩神经网络模型文件的数据量、降低神经网络模型在预测过程中的计算资源需求等目的。传统神经网络量化技术是直接压缩已有的网络结构到固定位宽。例如,将ResNet-18网络(一种残差网络)中的模型参数值和激活值压缩至4bit(比特);示例性地,基于每个网络层中模型参数符合某个确定的正态分布的特性,将以32位的浮点数(32bit)表示的模型参数以8位的整数(8bit)进行表示。然而,传统神经网络量化技术选择固定位宽作为量化策略,可能会导致神经网络的预测精度严重下降。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够在对目标神经网络压缩的同时,避免目标神经网络的预测精度严重下降的神经网络的量化策略确定方法、图像识别方法、装置、计算机设备和可读存储介质。第一方面,一种神经网络的量化策略确定方法,所述方法包括:获取预设的针对目标神经网络的多种量化策略;其中,每个量化策略用于表征所述目标神经网络中各网络层的运算属性的值,所述目标神经网络在各个量化策略下具有对应的模型参数;根据所述目标神经网络采用不同量化策略下的模型参数对测试样本进行测试的测试精度,从所述目标神经网络对应的多种量化策略中选择至少一种量化策略作为目标量化策略。在其中一个实施例中,所述运算属性包括以下内容中的至少一种:所述网络层中激活值的位宽、所述网络层中模型参数值的位宽、所述网络层的宽度、所述网络层的组数;其中,所述网络层的组数表征将输入所述网络层的不同通道的特征进行分组运算时的分组个数。在其中一个实施例中,所述根据所述目标神经网络采用不同量化策略下的模型参数对测试样本进行测试的测试精度,从所述目标神经网络对应的多种量化策略中选择至少一种量化策略作为目标量化策略,包括:采用训练样本对初始神经网络进行训练,得到所述目标神经网络在不同量化策略下的模型参数;根据所述目标神经网络在不同量化策略下的模型参数,从各量化策略中搜索得到测试精度最高的至少一种量化策略作为目标量化策略。在其中一个实施例中,所述采用训练样本对初始神经网络进行训练,得到所述目标神经网络在不同量化策略下的模型参数,包括:采用训练样本对所述初始神经网络进行迭代训练操作;所述迭代训练操作包括:对当前量化策略下的模型参数进行至少一次迭代更新;从各量化策略中选取一种量化策略作为新的当前量化策略,返回执行所述迭代训练操作,直至所述初始神经网络训练完成;其中,不同量化策略共享同一带参数网络层中同一运算属性的值所对应的模型参数;所述带参数网络层具有模型参数;输出所述训练完成的初始神经网络在不同量化策略下的模型参数,作为所述目标神经网络在不同量化策略下的模型参数。在其中一个实施例中,所述从各量化策略中选取一种量化策略作为新的当前量化策略,包括:从各量化策略中随机选取一种量化策略作为新的当前量化策略。在其中一个实施例中,所述从各量化策略中随机选取一种量化策略作为新的当前量化策略,包括:从所述初始神经网络中每个网络层的运算属性的多种可选值中随机选取一种可选值替换所述当前量化策略中每个网络层的运算属性的值。在其中一个实施例中,所述根据所述目标神经网络在不同量化策略下的模型参数,从各量化策略中搜索得到测试精度最高的至少一种量化策略作为目标量化策略,包括:根据所述目标神经网络在不同量化策略下的模型参数,从各量化策略中搜索得到运算量指标符合预设的运算量条件且测试精度最高的至少一个量化策略作为目标量化策略。在其中一个实施例中,在所述根据所述目标神经网络在不同量化策略下的模型参数,从各量化策略中搜索得到测试精度最高的至少一种量化策略作为目标量化策略之前,所述方法还包括:根据所述目标神经网络在每种量化策略下各网络层的运算属性的值,计算所述目标神经网络在每种量化策略下的运算量指标;从各量化策略中剔除运算量指标不符合预设的运算量条件的量化策略。在其中一个实施例中,所述目标神经网络在每种量化策略下的运算量指标为每种量化策略下各带参数网络层的运算量之和;所述带参数网络层的运算量为所述带参数网络层中激活值的位宽、模型参数值的位宽、运算次数三者的乘积;所述带参数网络层的运算次数与所述带参数网络层的输入通道数和输出通道数均正相关。在其中一个实施例中,所述带参数网络层的运算次数还与所述带参数网络层的组数负相关;所述组数表征将输入所述带参数网络层的不同通道的特征进行分组运算时的分组个数。在其中一个实施例中,当所述带参数网络层为卷积层时,所述运算次数=输入特征的宽度×输入特征的高度×卷积核宽度×卷积核高度×输入通道数×输出通道数÷组数;当所述带参数网络层为全连接层时,所述运算次数=输入通道数×输出通道数÷组数。在其中一个实施例中,所述根据所述目标神经网络在不同量化策略下的模型参数,从各量化策略中搜索得到测试精度最高的至少一个量化策略作为目标量化策略,包括:采用遗传算法从各量化策略中搜索得到测试精度最高的至少一种量化策略作为目标量化策略;所述遗传算法对应的适应度包括测试精度。在其中一个实施例中,所述采用遗传算法从各量化策略中搜索得到测试精度最高的至少一种量化策略作为目标量化策略,包括:建立所述目标神经网络的量化策略对应的初始种群;所述初始种群包括多个编码序列,每个编码序列表示一种量化策略;执行迭代处理操作,所述迭代处理操作包括:以所述初始种群中的多个编码序列为第一父代,交叉产生第一子代;采用所述第一父代中各编码序列对应的模型参数和所述第一子代中各编码序列对应的模型参数,分别对所述测试样本进行测试,得到所述第一父代中各编码序列对应的测试精度和所述第一子代中各编码序列对应的测试精度;根据所述第一父代和所述第一子代中各编码序列对应的测试精度,从所述第一父代和所述第一子代中筛选出测试精度最高的多个编码序列作为第二父代;将所述第二父代作为新的第一父代,返回执行所述迭代处理操作,直至迭代次数大于或者等于预设阈值为止,并将所述迭代次数大于或者等于预设阈值时的第一父代的多个编码序列中测试精度最高的至少一个编码序列对应的量化策略,作为目标量化策略。在其中一个实施例中,所述目标神经网络中的每个带参数网络层的运算属性具有多种可选值,除带参数网络层以外的其它每个网络层的运算属性具有一种可选值;所述带参数网络层具有模型参数。在其中一个实施例中,所述方法还包括:采用训练样本对所述目标量化策略下的初始神经网络进行训练,得到所述目标神经网络的目标模型参数。第二方面,一种图像识别方法,所述方法包括:将待处理图像输入目标神经网络进行特征提取处理,输出所述待处理图像的图像特征;其中,所述目标神经网络的目标量化策略是根据所述目标神经网络采用不同量化策略下的模型参数对测试样本进行测试的测试精度,从所述目标神经网络对应的多种量化策略中选择得到的;其中,每个量化策略用于表征所述目标神经网络中各网络层的运算属性的本文档来自技高网...

【技术保护点】
1.一种神经网络的量化策略确定方法,其特征在于,所述方法包括:获取预设的针对目标神经网络的多种量化策略;其中,每个量化策略用于表征所述目标神经网络中各网络层的运算属性的值,所述目标神经网络在各个量化策略下具有对应的模型参数;根据所述目标神经网络采用不同量化策略下的模型参数对测试样本进行测试的测试精度,从所述目标神经网络对应的多种量化策略中选择至少一种量化策略作为目标量化策略。

【技术特征摘要】
1.一种神经网络的量化策略确定方法,其特征在于,所述方法包括:获取预设的针对目标神经网络的多种量化策略;其中,每个量化策略用于表征所述目标神经网络中各网络层的运算属性的值,所述目标神经网络在各个量化策略下具有对应的模型参数;根据所述目标神经网络采用不同量化策略下的模型参数对测试样本进行测试的测试精度,从所述目标神经网络对应的多种量化策略中选择至少一种量化策略作为目标量化策略。2.根据权利要求1所述的方法,其特征在于,所述运算属性包括以下内容中的至少一种:所述网络层中激活值的位宽、所述网络层中模型参数值的位宽、所述网络层的宽度、所述网络层的组数;其中,所述网络层的组数表征将输入所述网络层的不同通道的特征进行分组运算时的分组个数。3.根据权利要求1所述的方法,其特征在于,所述根据所述目标神经网络采用不同量化策略下的模型参数对测试样本进行测试的测试精度,从所述目标神经网络对应的多种量化策略中选择至少一种量化策略作为目标量化策略,包括:采用训练样本对初始神经网络进行训练,得到所述目标神经网络在不同量化策略下的模型参数;根据所述目标神经网络在不同量化策略下的模型参数,从各量化策略中搜索得到测试精度最高的至少一种量化策略作为目标量化策略。4.根据权利要求3所述的方法,其特征在于,所述采用训练样本对初始神经网络进行训练,得到所述目标神经网络在不同量化策略下的模型参数,包括:采用训练样本对所述初始神经网络进行迭代训练操作;所述迭代训练操作包括:对当前量化策略下的模型参数进行至少一次迭代更新;从各量化策略中选取一种量化策略作为新的当前量化策略,返回执行所述迭代训练操作,直至所述初始神经网络训练完成;其中,不同量化策略共享同一带参数网络层中同一运算属性的值所对应的模型参数;所述带参数网络层具有模型参数;输出所述训练完成的初始神经网络在不同量化策略下的模型参数,作为所述目标神经网络在不同量化策略下的模型参数。5.根据权利要求4所述的方法,其特征在于,所述从各量化策略中选取一种量化策略作为新的当前量化策略,包括:从各量化策略中随机选取一种量化策略作为新的当前量化策略。6.根据权利要求5所述的方法,其特征在于,所述从各量化策略中随机选取一种量化策略作为新的当前量化策略,包括:从所述初始神经网络中每个网络层的运算属性的多种可选值中随机选取一种可选值替换所述当前量化策略中每个网络层的运算属性的值。7.根据权利要求3所述的方法,其特征在于,所述根据所述目标神经网络在不同量化策略下的模型参数,从各量化策略中搜索得到测试精度最高的至少一种量化策略作为目标量化策略,包括:根据所述目标神经网络在不同量化策略下的模型参数,从各量化策略中搜索得到运算量指标符合预设的运算量条件且测试精度最高的至少一个量化策略作为目标量化策略。8.根据权利要求3所述的方法,其特征在于,在所述根据所述目标神经网络在不同量化策略下的模型参数,从各量化策略中搜索得到测试精度最高的至少一种量化策略作为目标量化策略之前,所述方法还包括:根据所述目标神经网络在每种量化策略下各网络层的运算属性的值,计算所述目标神经网络在每种量化策略下的运算量指标;从各量化策略中剔除运算量指标不符合预设的运算量条件的量化策略。9.根据权利要求7或8所述的方法,其特征在于,所述目标神经网络在每种量化策略下的运算量指标为每种量化策略下各带参数网络层的运算量之和;所述带参数网络层的运算量为所述带参数网络层中激活值的位宽、模型参数值的位宽、运算次数三者的乘积;所述带参数网络层的运算次数与所述带参数网络层的输入通道数和输出通道数均正相关。10.根据权利要求9所述的方法,其特征在于,所述带参数网络层的运算次数还与所述带参数网络层的组数负相关;所述组数表征将输入所述带参数网络层的不同通道的特征进行分组运算时的分组个数。11.根据权利要求10所述的方法,其特征在于,当所述带参数网络层为卷积层时,所述运算次数=输入特征的宽度×输入特征的高度×卷积核宽度×卷积核高度×输入通道数×输出通道数÷组数;当所述带参数网络层为全连接层...

【专利技术属性】
技术研发人员:刘泽春郭梓超衡稳
申请(专利权)人:北京迈格威科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1