CN110852421B - 模型生成方法和装置 - Google Patents

模型生成方法和装置 Download PDF

Info

Publication number
CN110852421B
CN110852421B CN201911095878.7A CN201911095878A CN110852421B CN 110852421 B CN110852421 B CN 110852421B CN 201911095878 A CN201911095878 A CN 201911095878A CN 110852421 B CN110852421 B CN 110852421B
Authority
CN
China
Prior art keywords
neural network
quantization
network model
preset
network structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911095878.7A
Other languages
English (en)
Other versions
CN110852421A (zh
Inventor
希滕
张刚
温圣召
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201911095878.7A priority Critical patent/CN110852421B/zh
Publication of CN110852421A publication Critical patent/CN110852421A/zh
Application granted granted Critical
Publication of CN110852421B publication Critical patent/CN110852421B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

本公开涉及人工智能领域。本公开的实施例公开了模型生成方法和装置。该方法包括:通过依次执行多次迭代操作生成用于执行深度学习任务的神经网络模型;迭代操作包括:基于当前的奖励反馈值,在与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间中确定出各网络结构单元的当前量化方法,以更新预设的神经网络模型的量化策略;基于更新后的量化策略对预设的神经网络模型进行量化;获取量化后的神经网络模型的性能,并更新奖励反馈值;响应于确定奖励反馈值达到预设的收敛条件或迭代操作的次数达到预设的阈值,确定当前量化后的神经网络模型为生成的用于执行深度学习任务的神经网络模型。该方法可以减少神经网络模型占用的内存空间。

Description

模型生成方法和装置
技术领域
本公开的实施例涉及计算机技术领域,具体涉及人工智能技术领域,尤其涉及模型生成方法和装置。
背景技术
随着人工智能技术和数据存储技术的发展,深度神经网络在许多领域取得了重要的成果。神经网络的参数众多,随着深度的增加,高精度的神经网络参数需要的内存空间和带宽越来越大,神经网络的计算复杂度也越来越高,因此,量化对于深度神经网络来说非常重要。选择合适的量化方法可以有效地压缩神经网络参数占用的内存空间。然而,量化通常会带来神经网络模型精度的损失,通常神经网络参数的压缩比例越高,占用的内存空间越小,运算效率越高,但模型的精度损失也越大,模型的精度和运算效率难以兼得。
发明内容
本公开的实施例提出了模型生成方法和装置、电子设备和计算机可读介质。
第一方面,本公开的实施例提供了一种模型生成方法,包括:通过依次执行多次迭代操作生成用于执行深度学习任务的神经网络模型;其中,迭代操作包括:基于当前的奖励反馈值,在与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间中确定出各网络结构单元的当前量化方法,以更新预设的神经网络模型的量化策略,其中,奖励反馈值的初始值是预设的数值;基于更新后的量化策略对预设的神经网络模型进行量化;获取量化后的神经网络模型的性能,并根据量化后的神经网络模型的性能更新奖励反馈值;响应于确定奖励反馈值达到预设的收敛条件或迭代操作的次数达到预设的阈值,确定基于当前迭代操作中更新后的量化策略量化后的神经网络模型为生成的用于执行深度学习任务的神经网络模型。
在一些实施例中,上述与各网络结构单元分别对应的量化方法搜索空间按照如下方式确定:获取各网络结构单元对预设的量化方法集合中各候选量化方法的敏感度,网络结构单元对候选量化方法的敏感度表征网络结构单元的量化方法由其他量化方法变更为候选量化方法时,对应的神经网络模型的性能指标的变化率;基于各网络结构单元对各候选量化方法的敏感度,从预设的量化方法集合中筛选出满足与各网络结构单元对应的预设敏感度筛选条件的候选量化方法,以分别构建各网络结构单元对应的量化方法搜索空间。
在一些实施例中,上述网络结构单元为神经网络模型的单个层;以及上述与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间包括与预设的神经网络模型的各层分别对应的量化方法搜索空间。
在一些实施例中,上述迭代操作还包括:基于更新后的量化策略,对量化后的神经网络模型进行训练;以及上述获取量化后的神经网络模型的性能,包括:获取经过训练的量化后的神经网络模型的性能。
在一些实施例中,上述量化方法包括:参数的量化位宽。
第二方面,本公开的实施例提供了一种模型生成装置,包括:生成单元,被配置为通过依次执行多次迭代操作生成用于执行深度学习任务的神经网络模型;其中,迭代操作包括:基于当前的奖励反馈值,在与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间中确定出各网络结构单元的当前量化方法,以更新预设的神经网络模型的量化策略,其中,奖励反馈值的初始值是预设的数值;基于更新后的量化策略对预设的神经网络模型进行量化;获取量化后的神经网络模型的性能,并根据量化后的神经网络模型的性能更新奖励反馈值;响应于确定奖励反馈值达到预设的收敛条件或迭代操作的次数达到预设的阈值,确定基于当前迭代操作中更新后的量化策略量化后的神经网络模型为生成的用于执行深度学习任务的神经网络模型。
在一些实施例中,上述与各网络结构单元分别对应的量化方法搜索空间按照如下方式确定:获取各网络结构单元对预设的量化方法集合中各候选量化方法的敏感度,网络结构单元对候选量化方法的敏感度表征网络结构单元的量化方法由其他量化方法变更为候选量化方法时,对应的神经网络模型的性能指标的变化率;基于各网络结构单元对各候选量化方法的敏感度,从预设的量化方法集合中筛选出满足与各网络结构单元对应的预设敏感度筛选条件的候选量化方法,以分别构建各网络结构单元对应的量化方法搜索空间。
在一些实施例中,上述网络结构单元为神经网络模型的单个层;以及上述与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间包括与预设的神经网络模型的各层分别对应的量化方法搜索空间。
在一些实施例中,上述迭代操作还包括:基于更新后的量化策略,对量化后的神经网络模型进行训练;以及上述生成单元进一步被配置为按照如下方式获取量化后的神经网络模型的性能:获取经过训练的量化后的神经网络模型的性能。
在一些实施例中,上述量化方法包括:参数的量化位宽。
第三方面,本公开的实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面提供的模型生成方法。
第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,程序被处理器执行时实现第一方面提供的模型生成方法。
本公开的上述实施例的模型生成方法和装置,通过依次执行多次迭代操作生成用于执行深度学习任务的神经网络模型;其中,迭代操作包括:基于当前的奖励反馈值,在与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间中确定出各网络结构单元的当前量化方法,以更新预设的神经网络模型的量化策略,其中,奖励反馈值的初始值是预设的数值;基于更新后的量化策略对预设的神经网络模型进行量化;获取量化后的神经网络模型的性能,并根据量化后的神经网络模型的性能更新奖励反馈值。该模型生成方法和装置能够自动搜索出针对模型各网络结构单元的最优量化方法,在降低神经网络模型占用的内存空间的同时确保模型的精度。并且神经网络模型中的各网络结构单元分别具有对应的量化方法搜索空间,能够有效提升各网络结构单元的量化方法的搜索效率,从而提升了神经网络模型总体的量化策略搜索效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开的实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的模型生成方法的一个实施例的流程图;
图3是构建神经网络模型中各网络结构单元对应的量化方法搜索空间的方法的一个实施例的流程图;
图4是本公开的模型生成装置的一个实施例的结构示意图;
图5是适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的模型生成方法或模型生成装置的示例性系统架构100。
图1示出了可以应用本公开的模型生成方法或模型生成装置的示例性系统架构100。
如图1所示,系统架构100可以包括如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是用户端设备,其上可以安装有各种客户端应用。例如,图像处理类应用、信息分析类应用、语音助手类应用、购物类应用、金融类应用等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是运行各种服务的服务器,例如运行神经网络结构搜索任务的服务器,又例如运行模型蒸馏任务的服务器。服务器105可以从获取从终端设备101、102、103收集的深度学习任务数据、或者从数据库获取深度学习任务数据来构建训练样本,对用于执行深度学习任务的神经网络的模型结构进行自动搜索和优化。
服务器105还可以是为终端设备101、102、103上安装的应用提供后端支持的后端服务器。例如,服务器105可以接收终端设备101、102、103发送的待处理的信息,使用神经网络模型对信息进行处理,并将处理结果返回至终端设备101、102、103。
在实际场景中,终端设备101、102、103可以向服务器105发送与语音交互、文本分类、对话行为分类、图像识别、目标检测与跟踪等任务相关的深度学习任务请求。服务器105上可以运行已针对相应的深度学习任务训练得到的神经网络模型,利用该神经网络模型来处理信息。
需要说明的是,本公开的实施例所提供的模型生成方法一般由服务器105执行,相应地,模型生成装置一般设置于服务器105中。
在一些场景中,服务器105可以从数据库、存储器或其他设备获取模型生成所需要的源数据(例如训练样本,未优化的神经网络等),这时,示例性系统架构100可以不存在终端设备101、102、103和网络104。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,其示出了根据本公开的模型生成方法的一个实施例的流程200。该模型生成方法,包括:通过依次执行多次迭代操作生成用于执行深度学习任务的神经网络模型。
在本实施例中,可以预先设定迭代次数或迭代停止条件,在执行迭代操作的次数达到预先设定的迭代次数或迭代停止条件时,停止执行迭代操作,将在迭代过程中搜索出的最优的量化策略,或者搜索出的最优的量化策略以及模型参数作为生成的用于执行深度学习任务的神经网络模型。在这里,深度学习任务可以是利用深度神经网络来完成的信息处理任务。在实践中,深度学习任务可以例如为:语音识别、语音合成、文本翻译、自然语言理解、图像处理、趋势预测、目标检测与跟踪,等等。
具体地,迭代操作包括以下步骤:
步骤201,基于当前的奖励反馈值,在与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间中确定出各网络结构单元的当前量化方法,以更新预设的神经网络模型的量化策略。
可以采用强化学习的方法,利用表征神经网络模型的性能的奖励奖励反馈值(reward)来引导对神经网络模型的量化策略的更新。奖励反馈值的初始值是预设的数值,例如可以预先设定为0。在执行第一次迭代操作时,可以将奖励反馈值的初始值作为当前迭代操作的奖励反馈值,来对神经网络模型的量化策略更新。在非第一次迭代操作中,可以上一次迭代操作后更新的奖励反馈值作为当前迭代操作中的奖励反馈值。
通常为了确保神经网络模型的精度,神经网络模型各层的参数均采用64bit、32bit的高位宽进行存储。量化是将用高比特值表达的浮点数用低比特值的形式来存储以缩小占用的内存空间的方法,例如将64bit、32bit的数值量化为16bit、8bit、4bit、2bit等。量化策略可以表示神经网络模型采用的量化方法,具体可以包括神经网络的各网络结构单元所采用的量化方法。在这里,量化方法是对模型中的参数进行量化的方法,可以包括参数的量化位宽(比特值)、还可以包括将参数量化为对应的位宽所使用的数学转换方法。
神经网络模型通常包括多个层,每个层包含很多参数,例如权重参数、偏置参数,若干个层可以组合成为一个网络结构单元,神经网络模型由各个网络结构单元堆叠连接而形成。在量化方法包括参数的量化位宽时,各网络结构单元的参数的量化位宽可以不相同,例如可以包括2bit、4bit、8bit和16bit等,则更新后的量化策略可以是混合比特量化策略。
在本实施例中,神经网络模型的结构可以是预先设定的。网络结构单元可以是神经网络结构的组成单元,其结构可以预先定义,可以例如为残差网络ResNet中的残差模块Residual block,也可以是残差模块中的重复单元conv+BN+Relu(卷积层+归一化层+激活层);又或者例如为残差网络RseNet中的一个阶段(stage);还可以例如是由自定义的层组合形成的结构单元。神经网络模型可以包含多个结构相同或不同的网络结构单元。
上述神经网络模型中各网络结构单元可以分别具有与之对应的量化方法搜索空间。在这里,量化方法搜索空间可以包含对应的网络结构单元可使用的至少一个量化方法。各网络结构单元对应的量化方法搜索空间可以不相同。
在实践中,针对每个网络结构单元,在可选的量化方法中,可以根据统计结果或经验剔除针对该网络结构单元的运算效率过低、和/或使得模型的总体性能下降幅度过大的量化方法,来设定每个网络结构单元对应的量化方法搜索空间。举例来说,对于残差模块中的一个重复单元conv+BN+Relu,在采用2比特的量化位宽时神经网络模型的精度下降超过20%,则可以从该重复单元的量化方法搜索空间中剔除2比特的量化位宽。
在本实施例中,可以采用控制器来实现模型量化策略的更新。可以具体实现为各种机器学习算法,例如循环神经网络、递归神经网络、遗传算法等等。
可以利用奖励反馈值来引导控制器进行更新,以使上述预设的神经网络模型采用更新后的控制器所生成的量化策略后可以达到更高的奖励反馈值。例如,当控制器实现为递归神经网络时,可以基于奖励反馈值更新递归神经网络的参数,当控制器实现为遗传算法时,可以基于奖励反馈值对由各网络结构单元形成的量化策略的种群进行进化。
在每一次迭代操作中,控制器可以在奖励反馈值的引导下从各网络结构单元的量化方法搜索空间中确定出当前迭代操作中各网络单元的当前量化方法,从而更新神经网络模型的量化策略。
在本实施例的一些可选的实现方式中,可以通过上述控制器生成超参数序列,然后根据预先定义的超参数与量化方法的对应关系对超参数序列解码,得到各网络结构单元的量化方法。
可选地,上述网络结构单元可以是神经网络模型的单个层,则上述的神经网络模型的各网络结构单元分别对应的量化方法搜索空间包括与预设的神经网络模型的各层分别对应的量化方法搜索空间。通常单个层仅实现单一的运算,例如卷积、池化、全连接、非线性函数计算等。可以为每个层构建其对应的量化方法搜索空间。进一步可选地,执行相同运算且参数相同的层可以采用相同的量化方法搜索空间,例如多个重复单元中的相同卷积层可以使用相同的量化方法搜索空间。
在本实施例的一些可选的实现方式中,神经网络模型的各网络结构单元的量化方法搜索空间可以基于各网络结构单元在不同量化方法下对神经网络模型总体的性能的影响进行预先筛选后构建。
请参考图3,其示出了构建神经网络模型中的网络结构单元对应的量化方法搜索空间的方法的一个示例性流程。
如图3所示,在步骤301中,获取各网络结构单元对预设的量化方法集合中各候选量化方法的敏感度。
网络结构单元对候选量化方法的敏感度表征网络结构单元的量化方法由其他量化方法变更为候选量化方法时,对应的神经网络模型的性能指标的变化率。
上述预设的量化方法集合可以包括多个候选量化方法,可以是所有可选的候选量化方法的集合。例如,可以包含各可选的量化位宽(比特值)及与每一个量化位宽分别对应的至少一种参数位宽转换方法。
可以对各网络结构单元对不同候选量化方法的敏感度进行分析。例如对于指定的一个网络结构单元,控制神经网络模型中其他网络结构单元的量化方法不变,将该指定的网络结构单元的量化方法由第一候选量化方法切换为第二候选量化方法,获取切换后神经网络模型的精度损失的比例、或精度的下降率、或处理器的延时的增长率等性能指标的变化率,作为该指定的网络结构单元对第二候选量化方法的敏感度。
在一个具体的示例中,以神经网络中的单个层为网络结构单元,对于每个层,可以分析随着量化位宽(比特值)由最高的候选比特值到最低的候选比特值(例如由32bit逐步下降至16bit、8bit、4bit、2bit),其他层的量化位宽不变的情况下,神经网络模型的精度的损失率,根据模型精度的损失率确定出该层对各量化位宽的敏感度。
然后,在步骤302中,基于各网络结构单元对各候选量化方法的敏感度,从预设的量化方法集合中筛选出满足与各网络结构单元对应的预设敏感度筛选条件的候选量化方法,以分别构建各网络结构单元对应的量化方法搜索空间。
预设敏感度筛选条件可以是敏感度不超过预设的阈值,或者可以是敏感度不是所有候选量化方法中最高的。不同网络结构单元对应的敏感度筛选条件可以不相同。在本实施例中,对于每个网络结构单元,可以将敏感度满足预设的敏感度筛选条件的候选量化方法保留,剔除不满足预设的敏感度筛选条件的候选量化方法,从而构建出每个网络结构单元对应的量化方法搜索空间。
举例来说,对于神经网络模型中的一个层A,其量化位宽由16bit下降至8bit时,模型的精度损失不超过1%,量化位宽由8bit下降至4bit时,模型的精度损失超过10%,则可以在该层A的量化方法搜索空间中保留8bit的量化位宽,将4bit的量化位宽从层A的量化方法搜索空间中剔除。对于层B,其量化位宽由16bit下降至8bit时,和由8bit下降至4bit时,模型的精度损失都不超过1%,则可以在层B的量化方法搜索空间中保留8bit和4bit的量化位宽。
这样,通过分别对每个网络结构单元针对性地分析不同的候选量化方法的敏感度,在对应的搜索空间中剔除敏感度过高(例如敏感度超过阈值)的量化方法,能够在确保不损失最优量化策略的情况下优化各网络结构单元的搜索空间,进一步提升量化策略的搜索效率,节省运算资源。
返回图2,接着,执行步骤202,基于更新后的量化策略对预设的神经网络模型进行量化。
在每次迭代操作中,可以采用各网络结构单元的当前量化方法对各网络结构单元的参数进行量化,得到量化后的神经网络模型。
步骤203,获取量化后的神经网络模型的性能,并根据量化后的神经网络模型的性能更新奖励反馈值。
可以采用深度学习任务的测试数据集来测试量化后的神经网络模型的性能。神经网络模型的性能可以包括但不限于以下至少一项:运算效率、精度、计算复杂度、处理器的延时。
在实践中,可以针对具体的深度学习任务,确定对应的性能指标。例如对于认证任务,可以将认证结果的准确率作为神经网络模型的性能指标;对于分类任务,可以将最大概率的分类结果的准确率和分类的速度作为神经网络模型的性能指标。对于回归类的任务,例如检测目标位置,可以将检测结果的准确度作为神经网络模型的性能指标。
可以将基于当前的量化方法量化后的神经网络模型的性能作为新的奖励反馈值reward,也可以将量化后的神经网络模型的性能参数做数学变换(例如对错误率去倒数、做归一化处理等)之后作为新的奖励反馈至reward。这样,在下一次迭代操作中,可以基于新的奖励反馈值对量化策略进行更新。
步骤204,响应于确定奖励反馈值达到预设的收敛条件或迭代操作的次数达到预设的阈值,确定基于当前迭代操作中更新后的量化策略量化后的神经网络模型为生成的用于执行深度学习任务的神经网络模型。
更新奖励反馈值之后,可以判断奖励反馈值是否达到了预设的收敛条件,例如奖励反馈值在最近的连续几次迭代操作中的变化率是否低于预设的变化率阈值,若是,则可以停止迭代操作,并将当前的量化策略作为搜索出的最优量化策略,采用最优量化策略对上述预设的神经网络模型进行量化后得到用于执行深度学习任务的神经网络模型。
或者,在完成当前的迭代操作之后,可以对累计的迭代操作次数加1,然后判断累计的迭代操作的次数是否达到预设的次数阈值,若是,则可以停止迭代操作,并将采用当前迭代操作中更新后的量化策略量化后的神经网络模型为生成的用于执行深度学习任务的神经网络模型。
若奖励反馈值未达到预设的收敛条件且迭代操作的累计次数未达到预设的次数阈值,则基于更新后的奖励反馈值,执行下一次迭代操作,依次执行步骤201、步骤202、步骤203以及步骤204。这样,通过重复执行迭代操作,直到某一次迭代操作后的奖励反馈值达到预设的收敛条件或者迭代操作的累计次数达到预设的次数阈值,停止执行迭代操作,完成用于执行深度学习任务的神经网络模型的量化策略的搜索。
上述实施例的模型生成方法可以实现神经网络模型量化策略的自动搜索,这样可以通过量化有效缩小神经网络模型占用的内存空间,提升模型的运算效率,同时能够确保神经网络模型在搜索出的量化策略下的性能。此外,从分别针对各网络结构单元构建的量化搜索空间中搜索出对应的量化方法,有效缩减了神经网络模型的总体量化策略的搜索空间,从而减少了搜索量化策略所消耗的运算资源,提升了搜索效率。
在本实施例的一些可选的实现方式中,上述迭代操作还可以包括:基于更新后的量化策略,对量化后的神经网络模型进行训练。
在步骤202之后,可以基于样本集对量化后的神经网络模型进行训练。在模型训练中调整参数时,采用当前迭代操作中更新后的量化策略对参数进行调整。例如更新后的量化策略中模型中某一网络结构单元的量化位宽为8bit,则在模型训练中通过反向传播法调整该网络结构单元的参数的过程中,以8bit来保存该网络结构单元的参数。
通过训练,可以进一步优化模型的参数。这时,上述步骤203中获取量化后的神经网络模型的性能的步骤可以包括:获取经过训练的量化后的神经网络模型的性能。则进一步地可以根据经过训练的量化后的神经网络模型的性能更新当前的奖励反馈值。这样,可以进一步在搜索量化策略时优化模型的参数,提升生成的神经网络模型的性能。
请参考图4,作为对上述模型生成方法的实现,本公开提供了一种模型生成装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例的模型生成装置400包括生成单元401。生成单元401被配置为通过依次执行多次迭代操作生成用于执行深度学习任务的神经网络模型。其中,迭代操作包括:基于当前的奖励反馈值,在与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间中确定出各网络结构单元的当前量化方法,以更新预设的神经网络模型的量化策略,其中,奖励反馈值的初始值是预设的数值;基于更新后的量化策略对预设的神经网络模型进行量化;获取量化后的神经网络模型的性能,并根据量化后的神经网络模型的性能更新奖励反馈值;响应于确定奖励反馈值达到预设的收敛条件或迭代操作的次数达到预设的阈值,确定基于当前迭代操作中更新后的量化策略量化后的神经网络模型为生成的用于执行深度学习任务的神经网络模型。
在一些实施例中,上述与各网络结构单元分别对应的量化方法搜索空间是按照如下方式确定的:获取各网络结构单元对预设的量化方法集合中各候选量化方法的敏感度,网络结构单元对候选量化方法的敏感度表征网络结构单元的量化方法由其他量化方法变更为候选量化方法时,对应的神经网络模型的性能指标的变化率;基于各网络结构单元对各候选量化方法的敏感度,从预设的量化方法集合中筛选出满足与各网络结构单元对应的预设敏感度筛选条件的候选量化方法,以分别构建各网络结构单元对应的量化方法搜索空间。
在一些实施例中,上述网络结构单元为神经网络模型的单个层;以及上述与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间包括与预设的神经网络模型的各层分别对应的量化方法搜索空间。
在一些实施例中,上述迭代操作还包括:基于更新后的量化策略,对量化后的神经网络模型进行训练;以及上述生成单元401进一步被配置为按照如下方式获取量化后的神经网络模型的性能:获取经过训练的量化后的神经网络模型的性能。
在一些实施例中,上述量化方法包括:参数的量化位宽。
上述装置400中的生成单元401与参考图2描述的方法中的步骤相对应。由此,上文针对模型生成方法描述的操作、特征及所能达到的技术效果同样适用于装置400及其中包含的单元,在此不再赘述。
下面参考图5,其示出了适于用来实现本公开的实施例的电子设备(例如图1所示的服务器)500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图5中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开的实施例的方法中限定的上述功能。需要说明的是,本公开的实施例所描述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:通过依次执行多次迭代操作生成用于执行深度学习任务的神经网络模型;其中,迭代操作包括:基于当前的奖励反馈值,在与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间中确定出各网络结构单元的当前量化方法,以更新预设的神经网络模型的量化策略,其中,奖励反馈值的初始值是预设的数值;基于更新后的量化策略对预设的神经网络模型进行量化;获取量化后的神经网络模型的性能,并根据量化后的神经网络模型的性能更新奖励反馈值;响应于确定奖励反馈值达到预设的收敛条件或迭代操作的次数达到预设的阈值,确定基于当前迭代操作中更新后的量化策略量化后的神经网络模型为生成的用于执行深度学习任务的神经网络模型。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括生成单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,生成单元还可以被描述为“通过依次执行多次迭代操作生成用于执行深度学习任务的神经网络模型的单元”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种模型生成方法,包括:通过依次执行多次迭代操作生成用于执行深度学习任务的神经网络模型,所述深度学习任务包括图像处理任务;
其中,所述迭代操作包括:
基于当前的奖励反馈值,在与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间中确定出各所述网络结构单元的当前量化方法,以更新所述预设的神经网络模型的量化策略,其中,所述奖励反馈值的初始值是预设的数值,所述网络结构单元包括所述预设的神经网络模型的多个层,不同的网络结构单元对应不同的量化方法搜索空间,所述量化方法搜索空间包含根据统计结果剔除使得所述网络结构单元的运算效率过低、和/或使得模型的总体性能下降幅度过大的量化方法后的至少一个量化方法,所述统计结果包括基于不同量化方法对所述网络结构单元进行量化后的模型性能进行统计得到的结果;
基于更新后的量化策略对所述预设的神经网络模型进行量化;
基于所述深度学习任务的测试数据集获取量化后的神经网络模型的性能,并根据量化后的神经网络模型的性能更新所述奖励反馈值,其中,所述性能包括处理器的延时;
响应于确定奖励反馈值达到预设的收敛条件或迭代操作的次数达到预设的阈值,确定基于当前迭代操作中更新后的量化策略量化后的神经网络模型为生成的用于执行深度学习任务的神经网络模型。
2.根据权利要求1所述的方法,其中,所述与各网络结构单元分别对应的量化方法搜索空间按照如下方式确定:
获取各网络结构单元对预设的量化方法集合中各候选量化方法的敏感度,所述网络结构单元对候选量化方法的敏感度表征所述网络结构单元的量化方法由其他量化方法变更为候选量化方法时,对应的神经网络模型的性能指标的变化率;
基于各所述网络结构单元对各候选量化方法的敏感度,从所述预设的量化方法集合中筛选出满足与各所述网络结构单元对应的预设敏感度筛选条件的候选量化方法,以分别构建各网络结构单元对应的量化方法搜索空间。
3.根据权利要求1所述的方法,其中,所述迭代操作还包括:
基于更新后的量化策略,对量化后的所述神经网络模型进行训练;以及
所述获取量化后的神经网络模型的性能,包括:
获取经过训练的量化后的神经网络模型的性能。
4.根据权利要求1所述的方法,其中,所述量化方法包括:参数的量化位宽。
5.一种模型生成装置,包括:
生成单元,被配置为通过依次执行多次迭代操作生成用于执行深度学习任务的神经网络模型,所述深度学习任务包括图像处理任务;
其中,所述迭代操作包括:
基于当前的奖励反馈值,在与预设的神经网络模型的各网络结构单元分别对应的量化方法搜索空间中确定出各所述网络结构单元的当前量化方法,以更新所述预设的神经网络模型的量化策略,其中,所述奖励反馈值的初始值是预设的数值,所述网络结构单元包括所述预设的神经网络模型的多个层,不同的网络结构单元对应不同的量化方法搜索空间,所述量化方法搜索空间包含根据统计结果剔除使得所述网络结构单元的运算效率过低、和/或使得模型的总体性能下降幅度过大的量化方法后的至少一个量化方法,所述统计结果包括基于不同量化方法对所述网络结构单元进行量化后的模型性能进行统计得到的结果;
基于更新后的量化策略对所述预设的神经网络模型进行量化;
基于所述深度学习任务的测试数据集获取量化后的神经网络模型的性能,并根据量化后的神经网络模型的性能更新所述奖励反馈值,其中,所述性能包括处理器的延时;
响应于确定奖励反馈值达到预设的收敛条件或迭代操作的次数达到预设的阈值,确定基于当前迭代操作中更新后的量化策略量化后的神经网络模型为生成的用于执行深度学习任务的神经网络模型。
6.根据权利要求5所述的装置,其中,所述与各网络结构单元分别对应的量化方法搜索空间按照如下方式确定:
获取各网络结构单元对预设的量化方法集合中各候选量化方法的敏感度,所述网络结构单元对候选量化方法的敏感度表征所述网络结构单元的量化方法由其他量化方法变更为候选量化方法时,对应的神经网络模型的性能指标的变化率;
基于各所述网络结构单元对各候选量化方法的敏感度,从所述预设的量化方法集合中筛选出满足与各所述网络结构单元对应的预设敏感度筛选条件的候选量化方法,以分别构建各网络结构单元对应的量化方法搜索空间。
7.根据权利要求5所述的装置,其中,所述迭代操作还包括:
基于更新后的量化策略,对量化后的所述神经网络模型进行训练;以及
所述生成单元进一步被配置为按照如下方式获取量化后的神经网络模型的性能:
获取经过训练的量化后的神经网络模型的性能。
8.根据权利要求5所述的装置,其中,所述量化方法包括:参数的量化位宽。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
CN201911095878.7A 2019-11-11 2019-11-11 模型生成方法和装置 Active CN110852421B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911095878.7A CN110852421B (zh) 2019-11-11 2019-11-11 模型生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911095878.7A CN110852421B (zh) 2019-11-11 2019-11-11 模型生成方法和装置

Publications (2)

Publication Number Publication Date
CN110852421A CN110852421A (zh) 2020-02-28
CN110852421B true CN110852421B (zh) 2023-01-17

Family

ID=69601343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911095878.7A Active CN110852421B (zh) 2019-11-11 2019-11-11 模型生成方法和装置

Country Status (1)

Country Link
CN (1) CN110852421B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361701A (zh) * 2020-03-04 2021-09-07 北京百度网讯科技有限公司 神经网络模型的量化方法和装置
CN113361677B (zh) * 2020-03-04 2024-08-02 山东浪潮智慧建筑科技有限公司 神经网络模型的量化方法和装置
CN113408692A (zh) * 2020-03-16 2021-09-17 顺丰科技有限公司 网络结构的搜索方法、装置、设备及存储介质
CN111523640B (zh) * 2020-04-09 2023-10-31 北京百度网讯科技有限公司 神经网络模型的训练方法和装置
CN111539514B (zh) * 2020-04-16 2023-06-06 北京百度网讯科技有限公司 用于生成神经网络的结构的方法和装置
CN111539479B (zh) * 2020-04-27 2023-08-08 北京百度网讯科技有限公司 生成样本数据的方法和装置
CN111563593B (zh) * 2020-05-08 2023-09-15 北京百度网讯科技有限公司 神经网络模型的训练方法和装置
CN111582452B (zh) * 2020-05-09 2023-10-27 北京百度网讯科技有限公司 生成神经网络模型的方法和装置
CN111582479B (zh) * 2020-05-09 2023-10-27 北京百度网讯科技有限公司 神经网络模型的蒸馏方法和装置
CN111582476B (zh) * 2020-05-09 2024-08-02 北京百度网讯科技有限公司 自动量化策略搜索方法、装置、设备以及存储介质
CN111667054B (zh) * 2020-06-05 2023-09-01 北京百度网讯科技有限公司 生成神经网络模型的方法、装置、电子设备以及存储介质
CN111667055A (zh) * 2020-06-05 2020-09-15 北京百度网讯科技有限公司 用于搜索模型结构的方法和装置
CN111767833A (zh) * 2020-06-28 2020-10-13 北京百度网讯科技有限公司 模型生成方法、装置、电子设备及存储介质
WO2022027242A1 (zh) * 2020-08-04 2022-02-10 深圳市大疆创新科技有限公司 神经网络的数据处理方法、装置、可移动平台及计算机可读存储介质
CN112861951B (zh) * 2021-02-01 2024-03-26 上海依图网络科技有限公司 一种图像神经网络参数的确定方法及电子设备
CN114239792B (zh) * 2021-11-01 2023-10-24 荣耀终端有限公司 利用量化模型进行图像处理的系统、装置及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101779468A (zh) * 2008-06-27 2010-07-14 索尼公司 图像处理装置和图像处理方法
CN106483850A (zh) * 2016-11-23 2017-03-08 沈阳航天新光集团有限公司 一种航空发动机基于rbf神经网络前馈的模糊自适应pid控制器设计方法
CN109190754A (zh) * 2018-08-30 2019-01-11 北京地平线机器人技术研发有限公司 量化模型生成方法、装置和电子设备
CN109961141A (zh) * 2019-04-11 2019-07-02 北京字节跳动网络技术有限公司 用于生成量化神经网络的方法和装置
CN110309904A (zh) * 2019-01-29 2019-10-08 广州红贝科技有限公司 一种神经网络压缩方法
CN110348562A (zh) * 2019-06-19 2019-10-18 北京迈格威科技有限公司 神经网络的量化策略确定方法、图像识别方法和装置
CN110363810A (zh) * 2019-06-14 2019-10-22 北京百度网讯科技有限公司 建立图像检测模型的方法、装置、设备和计算机存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009157577A1 (ja) * 2008-06-27 2009-12-30 ソニー株式会社 画像処理装置及び画像処理方法
US11068780B2 (en) * 2017-04-01 2021-07-20 Intel Corporation Technologies for scaling deep learning training

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101779468A (zh) * 2008-06-27 2010-07-14 索尼公司 图像处理装置和图像处理方法
CN106483850A (zh) * 2016-11-23 2017-03-08 沈阳航天新光集团有限公司 一种航空发动机基于rbf神经网络前馈的模糊自适应pid控制器设计方法
CN109190754A (zh) * 2018-08-30 2019-01-11 北京地平线机器人技术研发有限公司 量化模型生成方法、装置和电子设备
CN110309904A (zh) * 2019-01-29 2019-10-08 广州红贝科技有限公司 一种神经网络压缩方法
CN109961141A (zh) * 2019-04-11 2019-07-02 北京字节跳动网络技术有限公司 用于生成量化神经网络的方法和装置
CN110363810A (zh) * 2019-06-14 2019-10-22 北京百度网讯科技有限公司 建立图像检测模型的方法、装置、设备和计算机存储介质
CN110348562A (zh) * 2019-06-19 2019-10-18 北京迈格威科技有限公司 神经网络的量化策略确定方法、图像识别方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"深度神经网络的压缩实现方法研究";马琰;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20181215;全文 *

Also Published As

Publication number Publication date
CN110852421A (zh) 2020-02-28

Similar Documents

Publication Publication Date Title
CN110852421B (zh) 模型生成方法和装置
CN110852438B (zh) 模型生成方法和装置
CN110807515B (zh) 模型生成方法和装置
CN111667054B (zh) 生成神经网络模型的方法、装置、电子设备以及存储介质
CN110766142A (zh) 模型生成方法和装置
CN108630190B (zh) 用于生成语音合成模型的方法和装置
KR102302609B1 (ko) 신경망 아키텍처 최적화
CN111523640B (zh) 神经网络模型的训练方法和装置
CN111340220B (zh) 用于训练预测模型的方法和装置
US20240127795A1 (en) Model training method, speech recognition method, device, medium, and apparatus
CN111340221A (zh) 神经网络结构的采样方法和装置
CN111353601B (zh) 用于预测模型结构的延时的方法和装置
CN111563593B (zh) 神经网络模型的训练方法和装置
CN111598238A (zh) 深度学习模型的压缩方法及装置
CN111368973A (zh) 用于训练超网络的方法和装置
CN111582488A (zh) 一种事件推演方法及装置
CN110782016A (zh) 用于优化神经网络架构搜索的方法和装置
CN113448821B (zh) 一种识别工程缺陷的方法和装置
CN110046670B (zh) 特征向量降维方法和装置
CN111582456B (zh) 用于生成网络模型信息的方法、装置、设备和介质
CN113361701A (zh) 神经网络模型的量化方法和装置
CN113361677B (zh) 神经网络模型的量化方法和装置
CN111353585B (zh) 神经网络模型的结构搜索方法和装置
CN113128677A (zh) 模型生成方法和装置
CN113361678A (zh) 神经网络模型的训练方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant