CN112329909B - 生成神经网络模型的方法、装置及存储介质 - Google Patents

生成神经网络模型的方法、装置及存储介质 Download PDF

Info

Publication number
CN112329909B
CN112329909B CN201910718494.XA CN201910718494A CN112329909B CN 112329909 B CN112329909 B CN 112329909B CN 201910718494 A CN201910718494 A CN 201910718494A CN 112329909 B CN112329909 B CN 112329909B
Authority
CN
China
Prior art keywords
neural network
network model
layers
sampling
layer
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
CN201910718494.XA
Other languages
English (en)
Other versions
CN112329909A (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910718494.XA priority Critical patent/CN112329909B/zh
Publication of CN112329909A publication Critical patent/CN112329909A/zh
Application granted granted Critical
Publication of CN112329909B publication Critical patent/CN112329909B/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

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)
  • Feedback Control In General (AREA)

Abstract

本申请公开了一种生成神经网络模型的方法及装置,属于深度学***台的不同深度的模型,无需重新对不同深度的模型进行训练,省时省力,且节省资源。

Description

生成神经网络模型的方法、装置及存储介质
技术领域
本申请涉及深度学习技术领域,特别涉及一种生成神经网络模型的方法、装置及计算机可读存储介质。
背景技术
神经网络模型的层数(也可以称为深度)是影响神经网络模型的运行速度的关键因素之一。由于不同的运算平台的运算能力不同,因此,对于一个层数较多的神经网络模型,在某些运算平台上运行该神经网络模型时可能会存在大幅的运行延迟。基于此,为了适配这一类的运算平台,可以根据运算平台的运算能力对该神经网络模型的层进行调整,以提高运算性能。
相关技术中,在对神经网络模型的层进行调整时,首先根据运算平台的运算能力确定该神经网络模型中的多个冗余层。之后,对多个冗余层进行裁剪。对裁剪后的神经网络模型重新进行训练,从而生成层数更少且更适合该运算平台的神经网络模型。
然而,由于相关技术中每根据运行平台的运算能力进行一次裁剪之后,均需要重新对裁剪后的神经网络模型进行重新训练,因此,费时费力,且浪费训练资源。
发明内容
本申请实施例提供了一种生成神经网络模型的方法及装置,可以用于解决相关技术中根据运行平台的运算能力进行神经网络模型裁剪以得到新的神经网络模型时,费时费力且浪费训练资源的问题。所述技术方案如下:
一方面,提供了一种生成神经网络模型的方法,所述方法包括:
获取第一神经网络模型,所述第一神经网络模型是指已训练的网络模型;
根据所述第一神经网络模型中的N个层,构建第二神经网络模型,所述第一神经网络模型包括的层的数量大于所述N;
其中,所述第二神经网络模型包括所述第一神经网络模型中的N个层,所述第二神经网络模型的N个层中的批归一化BN层的参数信息是通过对所述第一神经网络模型中对应的BN层的参数信息进行调整得到,所述第二神经网络模型的N个层中除所述BN层之外的其余层的参数信号采用所述第一神经网络模型中对应层的参数信号。
可选地,所述方法还包括:
根据第一控制数组,从初始神经网络模型中采样与所述第一控制数组对应的神经网络模型,所述第一控制数组用于指示从所述初始神经网络模型中采样的层的位置;
根据所述多个第一训练样本对采样的神经网络模型进行训练;
根据训练后的神经网络模型中每个层的参数信息对所述初始神经网络模型中对应的层的参数信息进行更新,并对所述第一控制数组进行更新,返回所述根据第一控制数组,从初始神经网络模型中采样与所述第一控制数组对应的神经网络模型的步骤,直到达到训练截止条件为止,将最后一次更新的初始神经网络模型作为所述第一神经网络模型。
可选地,所述根据所述第一神经网络模型中的N个层,构建第二神经网络模型,包括:
获取第二控制数组,所述第二控制数组用于指示待采样的所述第一神经网络模型中N个层的位置;
根据所述第二控制数组,从所述第一神经网络模型中采样N个层;
根据采样得到的N个层,构建第三神经网络模型;
如果所述第三神经网络模型的运行速度不大于参考运行速度,或者如果所述第三神经网络模型的运算精度不大于参考精度,则对所述第二控制数组进行更新,返回所述根据所述第二控制数组,从所述第一神经网络模型中采样N个层的步骤,直到达到采样截止条件为止,将根据最后一次采样的N个层构建的第三神经网络模型作为所述第二神经网络模型。
可选地,所述根据采样得到的N个层,构建第三神经网络模型,包括:
从所述第一神经网络模型中获取采样得到的N个层中每个层的参数信息;
根据采样得到的N个层和获取到的参数信息生成第四神经网络模型;
根据多个第二训练样本对所述第四神经网络模型包括的N个层中的每个BN层的参数信息进行调整,将调整后的第四神经网络模型作为所述第三神经网络模型。
可选地,所述采样截止条件是指从所述第一神经网络模型中采样N个层的次数达到参考次数,所述参考次数小于从所述第一神经网络模型的全部层中取出N个层的组合数。
可选地,所述方法还包括:
如果所述第三神经网络模型的运行速度大于参考运行速度,且所述第三神经网络模型的运算精度大于参考精度,则将所述第三神经网络模型作为所述第二神经网络模型。
另一方面,提供了一种生成神经网络模型的装置,所述装置包括:
获取模块,用于获取第一神经网络模型,所述第一神经网络模型是指已训练的网络模型;
构建模块,用于根据所述第一神经网络模型中的N个层,构建第二神经网络模型,所述第一神经网络模型包括的层的数量大于所述N;
其中,所述第二神经网络模型包括所述第一神经网络模型中的N个层,所述第二神经网络模型的N个层中的批归一化BN层的参数信息是通过对所述第一神经网络模型中对应的BN层的参数信息进行调整得到,所述第二神经网络模型的N个层中除所述BN层之外的其余层的参数信息采用所述第一神经网络模型中对应层的参数信息。
可选地,所述装置还用于:
根据第一控制数组,从初始神经网络模型中采样与所述第一控制数组对应的神经网络模型,所述第一控制数组用于指示从所述初始神经网络模型中采样的层的位置;
根据所述多个第一训练样本对采样的神经网络模型进行训练;
根据训练后的神经网络模型中每个层的参数信息对所述初始神经网络模型中对应的层的参数信息进行更新,并对所述第一控制数组进行更新,返回所述根据第一控制数组,从初始神经网络模型中采样与所述第一控制数组对应的神经网络模型的步骤,直到达到训练截止条件为止,将最后一次更新的初始神经网络模型作为所述第一神经网络模型。
可选地,所述构建模块包括:
获取子模块,用于获取第二控制数组,所述第二控制数组用于指示待采样的所述第一神经网络模型中N个层的位置;
采样子模块,用于根据所述第二控制数组,从所述第一神经网络模型中采样N个层;
构建子模块,用于根据采样得到的N个层,构建第三神经网络模型;
触发子模块,用于如果所述第三神经网络模型的运行速度不大于参考运行速度,或者如果所述第三神经网络模型的运算精度不大于参考精度,则对所述第二控制数组进行更新,触发所述采样子模块根据所述第二控制数组,从所述第一神经网络模型中采样N个层,直到达到采样截止条件为止,将根据最后一次采样的N个层构建的第三神经网络模型作为所述第二神经网络模型。
可选地,所述构建子模块具体用于:
从所述第一神经网络模型中获取采样得到的N个层中每个层的参数信息;
根据采样得到的N个层和获取到的参数信息生成第四神经网络模型;
根据多个第二训练样本对所述第四神经网络模型中的包括的N个层中每个BN层的参数信息进行调整,将调整后的第四神经网络模型作为所述第三神经网络模型。
可选地,所述采样截止条件是指从所述第一神经网络模型中采样N个层的次数达到参考次数,所述参考次数小于从所述第一神经网络模型的全部层中取出N个层的组合数。
可选地,所述装置还用于:
如果所述第三神经网络模型的运行速度大于参考运行速度,且所述第三神经网络模型的运算精度大于参考精度,则将所述第三神经网络模型作为所述第二神经网络模型。
另一方面,提供了一种生成神经网络模型的装置,所述装置包括处理器、通信接口、存储器和通信总线;
其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器用于存放计算机程序;
所述处理器用于执行所述存储器上所存放的程序,以实现前述提供的生成神经网络模型的方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述提供的生成神经网络模型的方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,获取第一神经网络模型,并根据第一神经网络模型中的N个层来构建得到第二神经网络模型。其中,第一神经网络模型是已经训练好的模型。第二神经网络模型包括第一神经网络模型的N个层,并且,第二神经网络模型中的N个层中除批BN层之外的其余层的参数信息均采用第一神经网络模型中的对应层的参数信息,第二神经网络模型中的BN层的参数信息通过对第一神经网络模型中对应的BN层的参数信息进行调整得到。由此可见,在本申请实施例中,通过第一神经网络模型中的部分层得到的第二神经网络模型中除BN层之外的层可以与第一神经网络模型中对应的层共用参数。这样,只需要训练好一个网络模型,即可根据该训练好的模型得到适配不同运算平台的不同深度的模型,无需重新对不同深度的模型进行训练,省时省力,且节省资源。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种生成神经网络模型的方法流程图;
图2是本申请实施例提供的根据第一神经网络模型中的N个层构建第二神经网络模型的方法流程图;
图3是本申请实施例提供的第一控制数组与神经网络模型的各层的对应关系的示意图;
图4是本申请实施例提供的生成神经网络模型的装置结构示意图;
图5是本申请实施例提供的构建模块的结构示意图;
图6是本申请实施例提供的生成神经网络模型的设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的应用场景予以介绍。
目前,神经网络模型被广泛的应用于各行各业中。例如,在智能交通领域,可以通过神经网络模型对监控设备采集到的车辆图像进行识别分类。再例如,在安保领域,可以通过神经网络模型对图像采集设备采集到的人脸图像进行识别等等。
神经网络模型包括的层的数量是影响运算平台运行该神经网络模型的速度的关键因素之一。通常,对于一个运算平台而言,神经网络模型的层的数量越多,则该运算平台运行该神经网络模型时的运行延迟越大。当前,用于实现神经网络模型的运算平台有多种,例如GPU(Graphics Processing Unit,图形处理器)、FPGA(Field Programmable GateArray,现场可编程门阵列)等等。由于不同的运算平台,其运算资源、带宽资源不同,因此,运算能力也不同。在这种情况下,对于一个层数较多的神经网络模型,当其在运算能力较强的运算平台上运行时,运行速度可能较快,但是,当其在一个运算能力较弱的运算平台上运行时,则可能会存在大幅的运行延迟。基于此,本申请实施例提供了一种生成神经网络模型的方法,以使神经网络模型可以适配不同的运算平台。
另外,在某些场景中,用户可能会指定神经网络模型的层数,然而,由于在指定层数的情况下,神经网络模型中层的组合方式可能会有多种,在这种情况下,也可以通过本申请实施例提供的生成神经网络模型的方法来从多种组合方式所形成的神经网络模型中构建出一种性能最优的网络模型。
接下来对本申请实施例提供的生成神经网络模型的方法进行介绍。
图1是本申请实施例提供的一种生成神经网络模型的方法的流程图。该方法可以应用于诸如智能手机、平板电脑等终端上,如图1所示,该方法可以包括以下步骤:
步骤101:获取第一神经网络模型,该第一神经网络模型是已训练的网络模型。
在本申请实施例中,首先可以根据多个第一训练样本对初始神经网络模型进行训练,从而得到第一神经网络模型。其中,该第一神经网络模型和初始神经网络模型均包括M个层。由于该第一神经网络模型是训练好的模型,因此,该第一神经网络模型的每个层的参数信息均是已知的。
需要说明的是,初始神经网络模型可以由其他设备进行训练,也可以由终端进行训练。以终端对初始神经网络模型进行训练为例,该终端可以根据第一控制数组,从初始神经网络模型中采样与第一控制数组对应的神经网络模型,第一控制数组用于指示从初始神经网络模型中采样的层的位置;根据多个第一训练样本对采样的神经网络模型进行训练;根据训练后的神经网络模型中每个层的参数信息对初始神经网络模型中对应的层的参数信息进行更新,并对第一控制数组进行更新,返回根据第一控制数组,从初始神经网络模型中采样与第一控制数组对应的神经网络模型的步骤,直到达到训练截止条件为止,将最后一次更新的初始神经网络模型作为第一神经网络模型。
示例性地,该终端可以根据初始神经网络模型包括的层的数量生成一个初始控制数组,该初始控制数组包括M个控制参数,每个控制参数对应初始神经网络模型的M个层中的一个层,且各个控制参数按照初始神经网络模型中的M个层的先后顺序排列。每个控制参数的取值可以用于指示是否对对应的层进行采样。在该初始数组中,每个控制参数的取值可以均为第一数值,例如,该第一数值可以为1,也可以为0。此时,该第一数值即用于指示对对应的层不进行采样。在生成初始数组之后,该终端可以随机从该初始数组中选择一定数量的控制参数,并将选择的控制参数修改为第二数值,从而得到第一控制数组。其中,第二数值与第一数值不同,用于指示对对应的层进行采样。例如,当第一数值为1时,该第二数值为0,当第一数值为0时,该第二数值为1。
在得到第一控制数组之后,该终端可以根据该第一控制数组,从初始神经网络模型中采样第一控制数组中取值为第二数值的控制参数对应的层,从而得到一个神经网络模型。将多个第一训练样本作为采样的神经网络模型的输入,对该采样的神经网络模型进行训练,以得到训练后的神经网络模型。之后,该终端可以用训练后的神经网络模型中的每个层的参数来替换初始神经网络模型中对应的层的参数,从而完成对初始神经网络模型的更新。
例如,假设根据第一控制数组,该终端从初始神经网络模型中采样了第一层、第三层、第五层、第八层,得到了一个神经网络模型,在对该神经网络模型进行训练之后,该终端可以将初始神经网络模型中第一层的参数替换为训练后的神经网络模型中的第一层的参数,将初始神经网络模型中的第三层的参数替换为训练后的神经网络模型中的第二层的参数,将初始神经网络模型中的第五层的参数替换为训练后的神经网络模型中的第三层的参数,将初始神经网络模型中的第八层的参数替换为训练后的神经网络模型中的第四层的参数,从而实现对初始神经网络模型的更新。
在将初始神经网络模型更新之后,该终端可以更新第一控制数组,之后,该终端可以继续根据更新后的第一控制数组再次对初始神经网络模型进行采样和训练,进而根据训练后的神经网络模型再次对初始神经网络模型的参数进行更新,如此循环,直到达到训练截止条件时,将最后一次更新的初始神经网络模型作为第一神经网络模型。
需要说明的是,该终端从初始数组中选择一定数量的控制参数修改为第二数值,以得到第一控制数组时,选择的控制参数的数量可以处于预设范围内。其中,该预设范围的下限值可以大于或等于2,且小于M,预设范围的上限值可以等于M。也即,在本申请实施例中,在根据第一控制数组对初始神经网络模型进行采样时,可以最少从初始神经模型中采样两层。当然,该预设范围的下限值也可以根据用户需求设置为3、4等其他数值,本申请实施例对此不做限定。
另外,训练截止条件可以是指第一控制数组的更新次数达到阈值次数。其中,该阈值次数小于或等于第一控制数组能够被更新的次数。所谓第一控制数组能够被更新的次数也即是对初始神经网络模型中的M个层进行采样时存在的所有可能的采样方式。例如,假设前述的预设范围为[2,M],则第一控制数组能够被更新的次数即是指在最少采样两层,最多采样M层的条件下,对初始神经网络模型中的M个层进行采样时存在的所有可能的采样方式。
在训练得到第一神经网络模型之后,当要在某个终端上运行该第一神经网络模型时,可以首先将该第一神经网络模型输入该终端。相应地,该终端可以获取输入的第一神经网络模型。
步骤102:根据第一神经网络模型中的N个层,构建第二神经网络模型。
在获取到第一神经网络模型之后,在一些可能的实现方式中,如图2所示,该终端可以通过以下步骤来根据第一神经网络模型中的N个层,构建第二神经网络模型。
1021:获取第二控制数组,该第二控制数组用于指示待采样的第一神经网络模型中N个层的位置。
在本申请实施例中,该终端可以获取第三数值N,该第三数值N是指适合该终端中的运算平台的神经网络模型的层数。需要说明的是,该第三数值可以是用户输入的,也可以是该终端通过多次模拟运算确定的。本申请实施例在此不做限定。可选地,该第三数值N可以是处于前述的预设范围之内的数值。例如,假设在步骤101中对初始神经网络模型进行采样训练时,用于指示采样的层的数量的预设范围为[2,M],则该第三数值可以是处于[2,M]之内的数值。
当获取到第三数值之后,该终端可以根据该第三数值和第一神经网络模型包括的全部层随机生成一个第二控制数组。
示例性地,该终端可以参照前述介绍的方式生成一个初始数组。在生成初始数组之后,该终端可以根据第三数值N,从该初始数组的M个控制参数中随机选择N个控制参数,将这N个控制参数的取值修改为第二数值,同时将剩余的M-N个控制参数的取值保持不变,从而得到一个第二控制数组。
需要说明的是,当从初始数组的M个控制参数中随机选择N个控制参数时,将存在
Figure BDA0002156308950000091
种选择方式。换句话说,得到控制数组有
Figure BDA0002156308950000092
种可能。
图3是本申请实施例给出的第二控制数组与神经网络模型的各层的对应关系的示意图。如图3所示,第一神经网络模型包括9个层,也即M=9,此时,初始数组中对应的包括9个控制参数。其中,第一个控制参数对应第一神经网络模型的第一层,第二个控制参数对应第一神经网络模型的第二层,以此类推。初始数组中的9个控制参数的取值均为第一数值,在此示例中,第一数值为0。也即,初始数组的9个控制参数的取值均为0,此时,该初始数组用于指示不对第一神经网络模型中任一个层进行采样。假设要从第一神经网络模型中采样6层,也即N=6,从初始数组中的9个参数中选择任意6个参数,将这6个参数的取值修改为第二数值,也即,修改为1,将剩余的3个参数的取值保持不变,从而得到第二控制数组。如图3中所示,如果将初始数组中的第二个控制参数、第四个控制参数和第八个控制参数的取值保持不变,其余参数修改为第二数值之后,则得到的第二控制数组用于指示对第一神经网络模型中除第二层、第四层和第八层之外的其他层进行采样。如果将初始数组中的第二个、第五个、第七个控制参数的取值保持不变,其余参数修改为第二数值,则得到的第二控制数组用于指示对第一神经网络模型中除第二层、第五层和第八层之外的其它层进行采样,以此类推。
可选地,在获取到第三数值N之后,该终端也可以直接根据该第三数值N,从前述步骤101更新的多个第一控制数组中获取包含的第二数值的数量为N的第一控制数组。换句话说,该终端可以直接根据N,从前述模型训练时所采用的多个第一控制数组中获取用于指示对初始神经网络模型采样N层的第一控制数组,并将获取到的这些第一控制数组中的任一个作为第二控制数组。之后,在步骤1027中对第二控制数组进行更新时,该终端可以利用获取到的第一控制数组中的其他数组来对第二控制数组进行更新。也即,该终端多次更新的第二控制数组可以均是前述用于训练初始神经网络模型时采样N层时所采用的第一控制数组。
可选地,在一些可能的情况下,第二控制数组也可以由用户输入。示例性地,可以由用户根据该终端的运算平台的运算能力以及先验经验确定第三数值,之后,按照该第三数值输入第二控制数组。
1022:根据该第二控制数组,从第一神经网络模型中采样N个层。
在获取到第二控制数组之后,该终端可以根据该第二控制数组,从第一神经网络模型中采样N个层。
需要说明的是,基于前述步骤1021中关于第二控制数组的介绍可知,该第二控制数组包括的M个控制参数中,有N个控制参数的取值为第二数值,剩余的控制参数的取值为第一数值。基于此,在获取到该第二控制数组之后,该终端可以对该第二控制数组中取值为第二数值的控制参数在第一神经网络模型中对应的层进行采样,得到N个层。
1023:根据采样得到的N个层,确定第三神经网络模型。
在采样得到N个层之后,该终端可以从第一神经网络模型中获取这N个层中的每个层的参数信息。之后,由采样得到的N个层和获取到的参数信息组成第四神经网络模型。
在得到第四神经网络模型之后,考虑到虽然第四神经网络模型中每个层与第一神经网络模型中的对应的层共用参数,但是,在层数变化的情况下,第四神经网络模型的各层输出的特征相较于第一神经网络模型的对应层输出的特征的分布可能会不一致。因此,该终端可以根据多个第二训练样本对第四神经网络模型中的每个BN层的参数信息进行调整,从而将调整之后的第四神经网络模型作为第三神经网络模型。其中,多个第二训练样本可以是从多个第一训练样本中获取的部分样本。其中,参数信息可以包括统计信息、滑动系数等。统计信息可以包括均值和方差。
示例性地,该终端可以将多个第二训练样本输入到第四神经网络模型。之后,每当第四神经网络模型中的一个层输出特征数据时,位于该层之后的BN层可以对该特征数据进行重新统计,从而得到对应的均值和方差。将该重新统计得到的均值和方差作为重新统计得到的该BN层的参数信息中的统计信息,并将该统计信息和BN层的参数信息中其余信息进行存储,从而得到第三神经网络模型。由此可见,相对于第一神经网络模型而言,第三神经网络模型中的BN层的参数信息中的统计信息均是根据该第三神经网络模型当前包含的层重新统计得到的,也即,BN层的参数信息是对第一神经网络模型对应的BN层的参数信息进行调整得到的,而除BN层之外的其余层的参数信息则采用第一神经网络模型对应层的参数信息。
1024:检测第三神经网络模型的运行速度是否大于参考运行速度。
在得到第三神经网络模型之后,该终端可以运行该第三神经网络模型,并检测运行速度。将该运行速度与参考运行速度进行比较。其中,运行速度可以通过第三神经网络模型的运行延时来表征。运行延时越小,则说明该第三神经网络模型的运行速度越快,反之,则说明运行速度越慢。相应地,参考运行速度是指能够接受的该第三神经网络模型的运行延时。在这种情况下,若第三神经网络模型的实际运行延时小于参考运行延时,则可以确定第三神经网络模型的运行速度大于参考运行速度,也即,说明该终端的运算平台的运算能力足以满足第三神经网络模型的运行。此时,则该终端可以执行步骤1025。
需要说明的是,上文中通过运行延时来表征运行速度仅是本申请实施例给出的一种表征运行速度的方式,在一些可能的情况下,该终端也可以采用其他方式来表征运行速度,本申请实施例对此不作限定。
可选地,如果检测到运行速度不大于参考运行速度,则说明该终端的运算平台的运算能力与当前的第三神经网络模型不匹配。此时,该终端可以执行步骤1026。
1025:检测第三神经网络模型的运算精度是否大于参考精度。
如果通过步骤1024确定第三神经网络模型的运行速度大于参考运行速度,则说明该终端的运算平台的运算能力能够满足第三神经网络模型的运行。接下来,该终端可以进一步检测该第三神经网络模型的运算精度是否大于参考精度,以此来保证第三神经网络模型的运算结果的精确度能够符合用户需求。其中,该参考精度可以是用户根据自身需求设置的。
如果第三神经网络模型的运算精度大于参考精度,则可以说明该第三神经网络模型不仅可以保证运算效率,而且,运算精度也符合用户需求,此时,该终端可以执行步骤1028。
可选地,如果第三神经网络模型的运算精度不大于参考精度,则说明该第三神经网络模型虽然可以保证运算效率,但是运算精度并不符合用户需求,此时,该终端可以执行步骤1026。
需要说明的是,在一些可能的示例中,该终端可以先执行步骤1025,当检测到第三神经网络模型的运算精度大于参考精度之后,再执行步骤1024。或者,该终端也可以同时执行步骤1024和1025。本申请实施例不对步骤1024和1025的执行顺序作限定。
1026:检测是否达到采样截止条件。
在检测到第三神经网络模型的运行速度不大于参考运行速度,或者是检测到第三神经网络模型的运算精度不大于参考精度时,则说明该第三神经网络模型并非最适合该终端的运算平台的模型,此时,该终端可以检测是否达到采样截止条件,以此来判断是否重新对第一神经网络模型进行采样。
其中,采样截止条件可以是指到当前时刻为止,从第一神经网络模型中采样N个层的次数达到参考次数。也即,对第一神经网络模型进行采样的次数达到参考次数。
需要说明的是,从第一神经网络模型的全部层中采样N个层有
Figure BDA0002156308950000121
种采样方式,也即,从第一神经网络模型的全部层中采样N个层有
Figure BDA0002156308950000122
种可能的情况。基于此,在一些可能的示例中,参考次数可以等于从第一神经网络模型的全部层中取出N个层的组合数
Figure BDA0002156308950000123
该终端可以在每执行一次步骤1022,则计数一次。这样,在本步骤中,该终端可以获取计数的数值,并将数值与
Figure BDA0002156308950000131
进行比较。若计数的数值等于
Figure BDA0002156308950000132
则说明从第一神经网络模型的全部层中采样N个层的所有可能的情况均已遍历完毕,此时,终端可以直接执行步骤1028,也即,直接将当前的第三神经网络模型作为第二神经网络模型并输出。
可选地,如果计数的数值小于
Figure BDA0002156308950000133
则说明从第一神经网络模型的全部层中采样N个层的所有可能的情况还未遍历完毕,此时,该终端可以执行步骤1027,以便重新对第一神经网络模型进行采样。
在另一些可能的示例中,用户可能为了追求效率,需要减少采样次数,在这种情况下,也可以由用户根据自身需求设置该参考次数,此时,该参考次数可以小于从第一神经网络模型的全部层中取出N个层的组合数
Figure BDA0002156308950000134
1027:对第二控制数组进行更新,返回步骤1022。
若通过步骤1026确定还未达到采样截止条件,则该终端可以对第二控制数组进行更新,之后,重新返回到步骤1022,根据更新后的第二控制数组重新对第一神经网络模型进行采样,并重新通过后续步骤确定第三神经网络模型是否符合要求。
需要说明的是,若在步骤1021中,该第二控制数组是由终端通过对初始数组进行修改得到的,则在对第二控制数组进行更新时,该终端可以重新对初始数组进行修改,并得到一个新的第二控制数组,由该新的第二控制数组替换之前的第二控制数组,从而实现第二控制数组的更新。其中,每一次更新得到的第二控制数组与之前的每个第二控制数组均不相同。
如果第二控制数组是从获取的多个第一控制数组中得到的,则该终端可以继续从获取的多个第一控制数组中选择一个与当前的第二控制数组不同的数组,来替换当前的第二控制数组。
可选地,若在步骤1021中,该第二控制数组是由用户输入的,则在本步骤中,该终端可以接收用户再次输入的第二控制数组,并将用户再次输入的第二控制数组作为更新后的第二控制数组。其中,用户每次输入的第二控制数组与之前输入的第二控制数组均不相同。
1028:将第三神经网络模型作为第二神经网络模型。
上述步骤1021-1028是本申请实施例提供的一种确定第二神经网络模型的可能的实现方式。当然,在另外一些实施例中,该终端还可以其他实现方式来确定第二神经网络模型。
示例性地,该终端可以将第一神经网络模型从第一层开始,按照从前到后的顺序,划分为至少两部分。之后,该终端可以根据第一参数来确定要从至少两部分中的每部分中所要采样的层数。在确定每部分对应的采样层数之后,该终端可以首先从第一部分中采样与第一部分对应的采样层数相同数量的层,以及采样其余部分包含的所有层,在采样之后,该终端可以参考前述实施例中介绍的方式,根据采样得到的层确定第三神经网络模型,进而检测第三神经网络模型的运行速度和运算精度的提升程度是否达到要求。若未达到要求,则重新按照前述方法对第一神经网络模型的第一部分进行采样。若达到要求,则该终端可以在第三神经网络模型的基础上,从之前划分的第二部分包含的层中采样与第二部分对应的采样层数相同数量的层,并参考对第一部分的处理方式进行处理。以此类推,直到处理完所有部分为止,将最终采样得到的第三神经网络模型作为第二神经网络模型并输出。
在上述实现方式,该终端在将第一神经网络模型划分为多个部分时,可以按照各个层的功能进行划分。这样,对于一些有特殊需求的场景,后续按照设定的每个部分所要采样的层数来进行采样,可以保证每个功能部分均能采样到满足一定数量的层,从而可以使得最终得到的第二神经网络模型更符合用户需求。
在本申请实施例中,获取第一神经网络模型,并根据第一神经网络模型中的N个层来确定得到第二神经网络模型。其中,第一神经网络模型是已经训练好的模型,第二神经网络模型包括第一神经网络模型的N个层,并且,第二神经网络模型中的N个层中除BN层之外的其余层的参数信息均采用第一神经网络模型中的对应层的参数信息。由此可见,在本申请实施例中,通过第一神经网络模型中的部分层得到的第二神经网络模型中除BN层之外的其他层可以与第一神经网络模型中对应的层共用参数,BN层的参数信息也可以通过对第一神经网络模型中对应的BN层的参数信息进行调整得到。这样,只需要训练好一个网络模型,即可根据该训练好的模型得到适配不同运算平台的不同深度的模型,无需重新对不同深度的模型进行训练,省时省力,且节省资源。并且,在应用中,仅需存储这个训练好的神经网络模型的参数信息即可,减少了存储的参数量。
另外,在本申请实施例中,在从第一神经网络模型中采样N个层,得到第三神经网络模型之后,可以检测该第三神经网络模型的运行速度和运算精度是否达到要求,若未达到要求,则可以重新进行采样,直到达到要求时,将最后确定的第三神经网络模型作为第二神经网络模型输出,此时,该第二神经网络模型即为与当前运算平台适配的且符合用户需求的模型。由此可见,相较于相关技术中通过启发式算法对神经网络模型进行裁剪以得到层数更少的模型的方法,通过本申请实施例提供的方法,可以保证最终得到的第二神经网络模型的最优性。
另外,根据本申请实施例中的训练方法来对初始神经网络模型进行训练,一方面,相对于直接分别训练多个深度的神经网络模型而言,可以避免参数过多、训练时间过长的问题,更为高效。另一方面,通过采样不同深度的神经网络模型来对初始神经网络模型的参数不断进行更新,可以使得后续无论采样什么深度的神经网络模型,采样得到的神经网络模型均可以保证较高的精度。
最后,还需要说明的是,相关技术中提供的通过启发式算法对神经网络模型进行裁剪以得到层数更少的模型方法,通常仅适用于残差网络。对于普通神经网络模型而言,由于通过启发式算法选择的冗余层较为随机,无法保证最终得到的模型的性能,所以,通过相关技术的方法对普通神经网络模型进行裁剪之后,很容易造成裁剪后的神经网络模型的性能大幅下降,甚至于无法使用。而本申请实施例提供的方法则可以应用于各种神经网络模型,通过对这些神经网络模型进行采样、与原始神经网络模型共用参数以及对采样后得到的神经网络模型的运行状况进行检测,来保证最终得到的神经网络模型不仅可用,且性能符合要求。由此可见,本申请实施例提供的方法的适用范围更广。
参见图4,本申请实施例提供了一种生成神经网络模型的装置400,该装置400包括:
获取模块401,用于获取第一神经网络模型,第一神经网络模型是指已训练的网络模型;
构建模块402,用于根据第一神经网络模型中的N个层,构建第二神经网络模型,第一神经网络模型包括的层的数量大于N;
其中,第二神经网络模型包括第一神经网络模型中的N个层,第二神经网络模型的N个层中的BN层的参数信息是通过对第一神经网络模型中对应的BN层的参数信息进行调整得到,第二神经网络模型的N个层中除BN层之外的其余层的参数信息采用第一神经网络模型中对应层的参数。
可选地,该装置400还用于:
根据第一控制数组,从初始神经网络模型中采样与第一控制数组对应的神经网络模型,第一控制数组用于指示从初始神经网络模型中采样的层的位置;
根据多个第一训练样本对采样的神经网络模型进行训练;
根据训练后的神经网络模型中每个层的参数信息对初始神经网络模型中对应的层的参数信息进行更新,并对第一控制数组进行更新,返回根据第一控制数组,从初始神经网络模型中采样与第一控制数组对应的神经网络模型的步骤,直到达到训练截止条件为止,将最后一次更新的初始神经网络模型作为第一神经网络模型。
可选地,参见图5,构建模块402包括:
获取子模块4021,用于获取第二控制数组,第二控制数组用于指示待采样的第一神经网络模型中N个层的位置;
采样子模块4022,用于根据第二控制数组,从第一神经网络模型中采样N个层;
构建子模块4023,用于根据采样得到的N个层,构建第三神经网络模型;
触发子模块4024,用于如果第三神经网络模型的运行速度不大于参考运行速度,或者如果第三神经网络模型的运算精度不大于参考精度,则对第二控制数组进行更新,触发采样子模块根据第二控制数组,从第一神经网络模型中采样N个层,直到达到采样截止条件为止,将根据最后一次采样的N个层构建的第三神经网络模型作为第二神经网络模型。
可选地,确定子模块4023具体用于:
从第一神经网络模型中获取采样得到的N个层中每个层的参数信息;
根据采样得到的N个层和获取到的参数信息生成第四神经网络模型;
根据多个第二训练样本对第四神经网络模型包括的N个层中的每个BN层的参数信息进行调整,将调整后的第四神经网络模型作为第三神经网络模型。
可选地,采样截止条件是指从第一神经网络模型中采样N个层的次数达到参考次数,参考次数小于从第一神经网络模型的全部层中取出N个层的组合数。
可选地,该装置400还用于:
如果第三神经网络模型的运行速度大于参考运行速度,且第三神经网络模型的运算精度大于参考精度,则将第三神经网络模型作为第二神经网络模型。
综上所述,本申请实施例获取第一神经网络模型,并根据第一神经网络模型中的N个层来确定得到第二神经网络模型。其中,第一神经网络模型是已经训练好的模型,第二神经网络模型包括第一神经网络模型的N个层,并且,第二神经网络模型中的N个层中除BN层之外的其余层的参数信息均采用第一神经网络模型中的对应层的参数信息。由此可见,在本申请实施例中,通过第一神经网络模型中的部分层得到的第二神经网络模型中除BN层之外的其他层可以与第一神经网络模型中对应的层共用参数,BN层的参数信息也可以通过对第一神经网络模型中对应的BN层的参数信息进行调整得到。这样,只需要训练好一个网络模型,即可根据该训练好的模型得到适配不同运算平台的不同深度的模型,无需重新对不同深度的模型进行训练,省时省力,且节省资源。并且,在应用中,仅需存储这个训练好的神经网络模型的参数信息即可,减少了存储的参数量。。
需要说明的是:上述实施例提供的生成神经网络模型的装置在生成神经网络模型时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的生成神经网络模型的装置与生成神经网络模型的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6示出了本申请一个示例性实施例提供的生成神经网络模型的设备600的结构框图。该生成神经网络模型的设备600可以是:智能手机、平板电脑、笔记本电脑或台式电脑。生成神经网络模型的设备600还可能被称为用户设备、便携式终端设备、膝上型终端设备、台式终端设备等其他名称。
通常,生成神经网络模型的设备600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请方法实施例提供的生成神经网络模型的方法。
在一些实施例中,生成神经网络模型的设备600还可选包括有:***设备接口603和至少一个***设备。处理器601、存储器602和***设备接口603之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口603相连。具体地,***设备包括:射频电路604、触摸显示屏605、摄像头606、音频电路607、定位组件608和电源609中至少一种。
***设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和***设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和***设备接口603中任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它调整神经网络模型的设备进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置设备600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在设备600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在设备600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在调整神经网络模型的设备的前面板,后置摄像头设置在调整神经网络模型的设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(VirtualReality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在设备600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
定位组件608用于定位设备600的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件608可以是基于美国的GPS(GlobalPositioning System,全球定位***)、中国的北斗***或俄罗斯的伽利略***的定位组件。
电源609用于为设备600中各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,设备600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。
加速度传感器611可以检测以设备600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制触摸显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器612可以检测设备600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对设备600的3D动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器613可以设置在设备600的侧边框和/或触摸显示屏605的下层。当压力传感器613设置在设备600的侧边框时,可以检测用户对设备600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在触摸显示屏605的下层时,由处理器601根据用户对触摸显示屏605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中至少一种。
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置设备600的正面、背面或侧面。当设备600上设置有物理按键或厂商Logo时,指纹传感器614可以与物理按键或厂商Logo集成在一起。
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制触摸显示屏605的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏605的显示亮度;当环境光强度较低时,调低触摸显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器616,也称距离传感器,通常设置在设备600的前面板。接近传感器616用于采集用户与设备600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与设备600的正面之间的距离逐渐变小时,由处理器601控制触摸显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与设备600的正面之间的距离逐渐变大时,由处理器601控制触摸显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对设备600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在本申请的示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由上述生成神经网络模型的设备中的处理器执行以完成上述实施例中的生成神经网络模型的方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (13)

1.一种生成神经网络模型的方法,其特征在于,应用于终端,所述方法包括:
获取第一神经网络模型,所述第一神经网络模型是指已训练的网络模型;
根据所述第一神经网络模型中的N个层,构建第二神经网络模型,所述第一神经网络模型包括的层的数量大于所述N,所述N为与所述终端中的运算平台的运算能力适配的神经网络模型的层数,所述运算平台包括中央处理器CPU、图形处理器GPU、数字信号处理DSP芯片、现场可编程门阵列FPGA和AI处理器中的至少一种;
其中,所述第二神经网络模型包括所述第一神经网络模型中的N个层,所述第二神经网络模型的N个层中的批归一化BN层的参数信息是通过对所述第一神经网络模型中对应的BN层的参数信息进行调整得到,所述第二神经网络模型的N个层中除所述BN层之外的其余层的参数信息采用所述第一神经网络模型中对应层的参数信息;
通过所述第二神经网络模型进行图像识别。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据第一控制数组,从初始神经网络模型中采样与所述第一控制数组对应的神经网络模型,所述第一控制数组用于指示从所述初始神经网络模型中采样的层的位置;
根据多个第一训练样本对采样的神经网络模型进行训练;
根据训练后的神经网络模型中每个层的参数信息对所述初始神经网络模型中对应的层的参数信息进行更新,并对所述第一控制数组进行更新,返回所述根据第一控制数组,从初始神经网络模型中采样与所述第一控制数组对应的神经网络模型的步骤,直到达到训练截止条件为止,将最后一次更新的初始神经网络模型作为所述第一神经网络模型。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一神经网络模型中的N个层,构建第二神经网络模型,包括:
获取第二控制数组,所述第二控制数组用于指示待采样的所述第一神经网络模型中N个层的位置;
根据所述第二控制数组,从所述第一神经网络模型中采样N个层;
根据采样得到的N个层,构建第三神经网络模型;
如果所述第三神经网络模型的运行速度不大于参考运行速度,或者如果所述第三神经网络模型的运算精度不大于参考精度,则对所述第二控制数组进行更新,返回所述根据所述第二控制数组,从所述第一神经网络模型中采样N个层的步骤,直到达到采样截止条件为止,将根据最后一次采样的N个层构建的第三神经网络模型作为所述第二神经网络模型。
4.根据权利要求3所述的方法,其特征在于,所述根据采样得到的N个层,构建第三神经网络模型,包括:
从所述第一神经网络模型中获取采样得到的N个层中每个层的参数信息;
根据采样得到的N个层和获取到的参数信息生成第四神经网络模型;
根据多个第二训练样本对所述第四神经网络模型包括的N个层中的每个BN层的参数信息进行调整,将调整后的第四神经网络模型作为所述第三神经网络模型。
5.根据权利要求3或4所述的方法,其特征在于,所述采样截止条件是指从所述第一神经网络模型中采样N个层的次数达到参考次数,所述参考次数小于从所述第一神经网络模型的全部层中取出N个层的组合数。
6.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
如果所述第三神经网络模型的运行速度大于参考运行速度,且所述第三神经网络模型的运算精度大于参考精度,则将所述第三神经网络模型作为所述第二神经网络模型。
7.一种生成神经网络模型的装置,其特征在于,所述装置包括:
获取模块,用于获取第一神经网络模型,所述第一神经网络模型是指已训练的网络模型;
构建模块,用于根据所述第一神经网络模型中的N个层,构建第二神经网络模型,所述第一神经网络模型包括的层的数量大于所述N,所述N为与所述装置中的运算平台的运算能力适配的神经网络模型的层数,所述运算平台包括中央处理器CPU、图形处理器GPU、数字信号处理DSP芯片、现场可编程门阵列FPGA和AI处理器中的至少一种;
其中,所述第二神经网络模型包括所述第一神经网络模型中的N个层,所述第二神经网络模型的N个层中的批归一化BN层的参数信息是通过对所述第一神经网络模型中对应的BN层的参数信息进行调整得到,所述第二神经网络模型的N个层中除所述BN层之外的其余层的参数信息采用所述第一神经网络模型中对应层的参数信息;
所述装置还用于通过所述第二神经网络模型进行图像识别。
8.根据权利要求7所述的装置,其特征在于,所述装置还用于:
根据第一控制数组,从初始神经网络模型中采样与所述第一控制数组对应的神经网络模型,所述第一控制数组用于指示从所述初始神经网络模型中采样的层的位置;
根据多个第一训练样本对采样的神经网络模型进行训练;
根据训练后的神经网络模型中每个层的参数信息对所述初始神经网络模型中对应的层的参数信息进行更新,并对所述第一控制数组进行更新,返回所述根据第一控制数组,从初始神经网络模型中采样与所述第一控制数组对应的神经网络模型的步骤,直到达到训练截止条件为止,将最后一次更新的初始神经网络模型作为所述第一神经网络模型。
9.根据权利要求7所述的装置,其特征在于,所述构建模块包括:
获取子模块,用于获取第二控制数组,所述第二控制数组用于指示待采样的所述第一神经网络模型中N个层的位置;
采样子模块,用于根据所述第二控制数组,从所述第一神经网络模型中采样N个层;
构建子模块,用于根据采样得到的N个层,构建第三神经网络模型;
触发子模块,用于如果所述第三神经网络模型的运行速度不大于参考运行速度,或者如果所述第三神经网络模型的运算精度不大于参考精度,则对所述第二控制数组进行更新,触发所述采样子模块根据所述第二控制数组,从所述第一神经网络模型中采样N个层,直到达到采样截止条件为止,将根据最后一次采样的N个层构建的第三神经网络模型作为所述第二神经网络模型。
10.根据权利要求9所述的装置,其特征在于,所述构建子模块具体用于:
从所述第一神经网络模型中获取采样得到的N个层中每个层的参数信息;
根据采样得到的N个层和获取到的参数信息生成第四神经网络模型;
根据多个第二训练样本对所述第四神经网络模型包括的N个层中的每个BN层的参数信息进行调整,将调整后的第四神经网络模型作为所述第三神经网络模型。
11.根据权利要求9或10所述的装置,其特征在于,所述采样截止条件是指从所述第一神经网络模型中采样N个层的次数达到参考次数,所述参考次数小于从所述第一神经网络模型的全部层中取出N个层的组合数。
12.根据权利要求9或10所述的装置,其特征在于,所述装置还用于:
如果所述第三神经网络模型的运行速度大于参考运行速度,且所述第三神经网络模型的运算精度大于参考精度,则将所述第三神经网络模型作为所述第二神经网络模型。
13.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述方法的步骤。
CN201910718494.XA 2019-08-05 2019-08-05 生成神经网络模型的方法、装置及存储介质 Active CN112329909B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910718494.XA CN112329909B (zh) 2019-08-05 2019-08-05 生成神经网络模型的方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910718494.XA CN112329909B (zh) 2019-08-05 2019-08-05 生成神经网络模型的方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN112329909A CN112329909A (zh) 2021-02-05
CN112329909B true CN112329909B (zh) 2022-10-21

Family

ID=74319427

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910718494.XA Active CN112329909B (zh) 2019-08-05 2019-08-05 生成神经网络模型的方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN112329909B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117501777A (zh) * 2022-06-01 2024-02-02 北京小米移动软件有限公司 人工智能模型的确定方法及装置、通信设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492747A (zh) * 2017-09-13 2019-03-19 杭州海康威视数字技术股份有限公司 一种神经网络的网络结构生成方法及装置
CN109800865A (zh) * 2019-01-24 2019-05-24 北京市商汤科技开发有限公司 神经网络生成及图像处理方法和装置、平台、电子设备
CN110070030A (zh) * 2019-04-18 2019-07-30 北京迈格威科技有限公司 图像识别与神经网络模型的训练方法、装置和***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10410098B2 (en) * 2017-04-24 2019-09-10 Intel Corporation Compute optimizations for neural networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492747A (zh) * 2017-09-13 2019-03-19 杭州海康威视数字技术股份有限公司 一种神经网络的网络结构生成方法及装置
CN109800865A (zh) * 2019-01-24 2019-05-24 北京市商汤科技开发有限公司 神经网络生成及图像处理方法和装置、平台、电子设备
CN110070030A (zh) * 2019-04-18 2019-07-30 北京迈格威科技有限公司 图像识别与神经网络模型的训练方法、装置和***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BN-cluster:基于批归一化的集成算法实例分析;张德园等;《沈阳航空航天大学学报》;20180625(第03期);全文 *

Also Published As

Publication number Publication date
CN112329909A (zh) 2021-02-05

Similar Documents

Publication Publication Date Title
CN109815150B (zh) 应用测试方法、装置、电子设备及存储介质
CN112907725B (zh) 图像生成、图像处理模型的训练、图像处理方法和装置
CN109522863B (zh) 耳部关键点检测方法、装置及存储介质
CN110839128B (zh) 拍照行为检测方法、装置及存储介质
CN110769313B (zh) 视频处理方法及装置、存储介质
CN112581358B (zh) 图像处理模型的训练方法、图像处理方法及装置
CN111144365A (zh) 活体检测方法、装置、计算机设备及存储介质
CN111613213B (zh) 音频分类的方法、装置、设备以及存储介质
CN110705614A (zh) 模型训练方法、装置、电子设备及存储介质
CN111857793B (zh) 网络模型的训练方法、装置、设备及存储介质
CN111753606A (zh) 一种智能模型的升级方法及装置
CN111127541A (zh) 车辆尺寸的确定方法、装置及存储介质
CN112329909B (zh) 生成神经网络模型的方法、装置及存储介质
CN110992954A (zh) 语音识别的方法、装置、设备及存储介质
CN111128115A (zh) 信息验证方法、装置、电子设备及存储介质
CN111860064A (zh) 基于视频的目标检测方法、装置、设备及存储介质
CN113343709B (zh) 意图识别模型的训练方法、意图识别方法、装置及设备
CN114384466A (zh) 声源方向确定方法、装置、电子设备及存储介质
CN110853704B (zh) 蛋白质数据获取方法、装置、计算机设备及存储介质
CN112990424B (zh) 神经网络模型训练的方法和装置
CN111402873A (zh) 语音信号处理方法、装置、设备及存储介质
CN111916105A (zh) 语音信号处理方法、装置、电子设备及存储介质
CN111523876A (zh) 支付方式的显示方法、装置、***及存储介质
CN112990421A (zh) 优化深度学习网络的运行过程的方法、装置及存储介质
CN112184802A (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