神经网络模型优化方法技术

技术编号:39712344 阅读:5 留言:0更新日期:2023-12-17 23:21
公开了神经网络模型优化方法

【技术实现步骤摘要】
神经网络模型优化方法、装置及计算设备


[0001]本申请涉及人工智能领域,尤其涉及一种神经网络模型优化方法

装置及计算设备


技术介绍

[0002]人工智能
(Artificial Intelligence

AI)
是利用计算机模拟和扩展人的智能,感知环境

获取知识并使用知识获得结果的理论

方法

技术及应用系统

人工智能技术广泛应用于机器学习
(Machine Learning

ML)、
自然语言处理

计算机视觉

决策与推理

人机交互

推荐与搜索和
AI
基础理论等领域

基于神经网络模型处理数据实现识别等应用功能是人工智能应用的关键技术

[0003]通常,云侧设备可以采用训练集对神经网络模型进行训练,使神经网络模型具备识别等应用功能,并将神经网络模型部署到至少一个终端
(
如:智能手机

摄像头

自动驾驶汽车等
)。
终端利用配置的神经网络模型对获取到的应用数据
(
如:图像

语音等
)
进行处理实现识别等应用功能

为了提高神经网络模型处理数据的精度,神经网络模型逐渐呈现结构复杂化和参数量增多的趋势,导致神经网络模型处理数据所需的计算资源算力越来越高,以及处理数据时长越来越长


技术实现思路

[0004]本申请提供了神经网络模型优化方法

装置及计算设备,由此在对神经网络模型中的算子进行量化后,确保神经网络模型处理数据的精度的前提下,缩短神经网络模型处理数据的时长

[0005]第一方面,提供了一种神经网络模型优化方法,方法由计算设备执行

方法包括:计算设备获取到待优化的神经网络模型后,确定神经网络模型包含的多个可量化算子中的第一可量化算子在运行神经网络模型的硬件平台上运行时的算子耗时,以及获取神经网络模型在硬件平台上上一次运行后的性能参数

进而,计算设备根据算子耗时

性能参数及多个可量化算子中的第二可量化算子的算子参数确定第二可量化算子的量化位宽

第一可量化算子为第二可量化算子的前一个可量化算子

神经网络模型包含的多个可量化算子被顺次依据上述步骤执行

在依次确定多个可量化算子的量化位宽后,根据所确定的多个可量化算子中每个可量化算子的量化位宽在硬件平台上执行神经网络模型,并在神经网络模型的输出的性能参数达到目标性能参数时,完成对神经网络模型的优化

[0006]可理解地,第一,前一个可量化算子的算子耗时指示了前一个可量化算子在实际运行神经网络模型的硬件平台上运行时的时延程度

依据不同的量化位宽量化可量化算子,可量化算子在硬件平台上运行时的时延程度不同

神经网络模型中每个可量化算子的算子耗时影响神经网络模型在硬件平台上运行的整体时延

由于神经网络模型中当前可量化算子运行的结果受到前一个可量化算子运行的影响,则依据前一个可量化算子的算子耗时确定当前可量化算子的量化位宽,以控制当前可量化算子在硬件平台上运行时的时延程
度,进而使神经网络模型在硬件平台上运行的整体时延接近目标性能参数

第二,性能参数指示了包含上一次量化后的可量化算子的神经网络模型在硬件平台上运行后的性能优劣程度

如果性能参数趋于目标性能参数,表示神经网络模型的上一次量化效果较优,反之,神经网络模型的上一次量化效果较差

因此,神经网络模型在硬件平台上上一次运行后的性能参数可以指导计算设备确定当前可量化算子的量化位宽的方向

第三,当前可量化算子的算子参数指示了当前可量化算子的算子结构特征

计算设备运行复杂算子结构的可量化算子,不仅计算复杂度高而且算子耗时也较长

因此,计算设备根据当前可量化算子的算子结构特征确定当前可量化算子的量化位宽,在确保精度损失在预设范围内的前提下,降低当前可量化算子的计算复杂度以及缩短算子耗时

如此,计算设备参考前一个可量化算子的算子耗时

当前可量化算子的算子参数和神经网络模型在硬件平台上上一次运行后的性能参数动态地确定当前可量化算子的量化位宽,在神经网络模型的输出的性能参数达到目标性能参数时,完成对神经网络模型的优化,从而在确保神经网络模型处理数据的精度损失在预设范围内的前提下,显著地缩短实际运行神经网络模型的硬件平台上量化后神经网络模型处理数据的时长,缩小神经网络模型的大小

[0007]该方法可以实现自动优化神经网络模型,简单

直观

高效

可扩展性强,只需输入神经网络模型即可快速对神经网络模型完成优化,适用场景广泛

在一些时延敏感场景,如目标识别

自动驾驶

车牌识别

目标检测等场景,本申请实施例提供的神经网络模型优化方法尤其适用,能够有效地提升神经网络模型推理速度,缩短神经网络模型推理耗时,提升用户体验

[0008]其中,性能参数包括神经网络模型的精度

时延和模型大小中的至少一个

[0009]在一种可能的实现方式中,在根据所确定的每个可量化算子的量化位宽在硬件平台上执行神经网络模型后,在神经网络模型的输出的性能参数没有达到目标性能参数时,则继续确定神经网络模型中每个可量化算子的量化位宽,并根据所确定的多个可量化算子的量化位宽在硬件平台上执行神经网络模型,直到神经网络模型的输出的性能参数达到目标性能参数

从而,以目标性能参数为训练目标,经过多次训练为神经网络模型中每个可量化算子确定量化位宽,使神经网络模型的输出的性能参数达到目标性能参数,在确保神经网络模型处理数据的精度损失在预设范围内的前提下,显著地缩短实际运行神经网络模型的硬件平台上量化后神经网络模型处理数据的时长,缩小神经网络模型的大小

[0010]在另一种可能的实现方式中,确定多个可量化算子中的第一可量化算子在运行网络模型的硬件平台上运行时的算子耗时包括:在等价算子库中确认第一可量化算子对应的第一算子集是否存在等价算子集,等价算子集包含第一算子集中可替换算子对应的等价算子

[0011]当存在等价算子集时,则在硬件平台上分别运行第一算子集及等价算子集,确定第一算子集耗本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种神经网络模型优化方法,其特征在于,所述方法由计算设备执行,所述方法包括:获取待优化的神经网络模型,所述神经网络模型包含多个可量化算子,所述多个可量化算子在所述神经网络模型中被顺次执行;确定所述多个可量化算子中的第一可量化算子在运行所述神经网络模型的硬件平台上运行时的算子耗时;获取所述神经网络模型在所述硬件平台上上一次运行后的性能参数;根据所述算子耗时

所述性能参数及所述多个可量化算子中的第二可量化算子的算子参数确定所述第二可量化算子的量化位宽,所述第一可量化算子为所述第二可量化算子的前一个可量化算子;在依次确定所述多个可量化算子的量化位宽后,根据所确定的所述多个可量化算子中每个可量化算子的量化位宽在所述硬件平台上执行神经网络模型,并在所述神经网络模型的输出的性能参数达到目标性能参数时,完成对所述神经网络模型的优化
。2.
根据权利要求1所述的方法,其特征在于,在所述根据所确定的每个可量化算子的量化位宽在所述硬件平台上执行神经网络模型后,在所述神经网络模型的输出的性能参数没有达到所述目标性能参数时,则继续确定所述神经网络模型中所述每个可量化算子的量化位宽,并根据所确定的所述多个可量化算子的量化位宽在所述硬件平台上执行神经网络模型,直到所述神经网络模型的输出的性能参数达到所述目标性能参数
。3.
根据权利要求1所述的方法,其特征在于,确定所述多个可量化算子中的第一可量化算子在运行所述网络模型的硬件平台上运行时的算子耗时包括:在等价算子库中确认所述第一可量化算子对应的第一算子集是否存在等价算子集;当存在所述等价算子集时,则在所述硬件平台上分别运行所述第一算子集及所述等价算子集,确定第一算子集耗时及等价算子集耗时,当所述第一算子集耗时小于等于所述等价算子集耗时时,将所述第一算子集耗时作为所述算子耗时,当所述第一算子集耗时大于所述等价算子集耗时时,将所述等价算子集耗时作为所述算子耗时
。4.
根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述第一算子集耗时大于所述等价算子集耗时时,在根据所确定的所述多个算子的量化位宽在所述硬件平台上执行神经网络模型时,用所述等价算子集替换所述第一算子集
。5.
根据权利要求1至4中任意一项所述的方法,其特征在于,所述性能参数包括所述神经网络模型的精度

时延和模型大小中的至少一个
。6.
一种神经网络模型优化装置,其特征在于,所述装置由计算设备执行,所述装置包括:通信模块,用于获取待优化的神经网络模型,所述神经网络模型包含多个可量化算子...

【专利技术属性】
技术研发人员:孙允允赖坤锋宁振江
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1