CN109359727B - 神经网络的结构确定方法、装置、设备及可读介质 - Google Patents
神经网络的结构确定方法、装置、设备及可读介质 Download PDFInfo
- Publication number
- CN109359727B CN109359727B CN201811494899.1A CN201811494899A CN109359727B CN 109359727 B CN109359727 B CN 109359727B CN 201811494899 A CN201811494899 A CN 201811494899A CN 109359727 B CN109359727 B CN 109359727B
- Authority
- CN
- China
- Prior art keywords
- network structure
- current network
- function value
- objective function
- network
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Telephonic Communication Services (AREA)
- Image Analysis (AREA)
Abstract
本公开实施例公开了一种神经网络的结构确定方法、装置、设备及可读介质,用于图像处理。其中,方法包括:通过采样器采样出当前网络结构;将当前网络结构的网络参数和输入数据的格式转换为定点;将网络结构、定点格式的网络参数和输入数据提供至终端;在终端运行当前网络结构,并获取当前网络结构的运行时长,根据当前网络结构的运行时长,计算当前网络结构的目标函数值;根据所述目标函数值调整所述采样器的参数;返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值。本公开实施例考虑了终端的运算能力有限,能够在图像处理中节省终端的运行时长和计算资源等技术效果。
Description
技术领域
本公开实施例涉及计算机视觉技术,尤其涉及一种神经网络的结构确定方法、装置、设备及可读介质。
背景技术
随着计算机视觉的发展,可以通过神经网络对图像、声音等数据进行处理,例如对图像中的对象进行目标检测、目标跟踪、分割和分类等。
随着用户需求的提升和终端技术的发展,对数据处理的准确性和速度提出了更高的要求,这就需要一个处理效果较佳的神经网络。现有技术中,大多使用比较成熟的RCNN、TOLO、SSD等神经网络进行图像处理,但是,发明人在研究过程中发现,这些成熟的神经网络并不适用所有数据的处理,例如在处理某些图像时,这些神经网络的处理效果较差,并且需要的计算资源较大,运行时长较长,不便于在运算能力有限的终端中使用。
发明内容
本公开实施例提供一种神经网络的结构确定方法、装置、设备及可读介质,以实现网络结构的自动搜索,用于在图像处理中节省终端的运行时长和计算资源。
第一方面,本公开实施例提供了一种神经网络的结构确定方法,用于图像处理,包括:
通过采样器采样出当前网络结构;
将当前网络结构的网络参数和输入数据的格式转换为定点;将网络结构、定点格式的网络参数和输入数据提供至终端;在终端运行当前网络结构,并获取当前网络结构的运行时长,根据当前网络结构的运行时长,计算当前网络结构的目标函数值;
根据所述目标函数值调整所述采样器的参数;
返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值。
第二方面,本公开实施例还提供了一种神经网络的结构确定装置,用于图像处理,包括:
采样模块,用于通过采样器采样出当前网络结构;
计算模块,用于将当前网络结构的网络参数和输入数据的格式转换为定点;将网络结构、定点格式的网络参数和输入数据提供至终端;在终端运行当前网络结构,并获取当前网络结构的运行时长,根据当前网络结构的运行时长,计算当前网络结构的目标函数值;
调整模块,用于根据所述目标函数值调整所述采样器的参数;
返回模块,用于返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值。
第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理装置;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理装置实现任一实施例所述的神经网络的结构确定方法。
第四方面,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现任一实施例所述的神经网络的结构确定方法。
本公开实施例中,通过采样器采样出当前网络结构,将当前网络结构的网络参数和输入数据的格式转换为定点;将网络结构、定点格式的网络参数和输入数据提供至终端;在终端运行当前网络结构,并获取当前网络结构的运行时长,根据当前网络结构的运行时长,据此计算当前网络结构的目标函数值,从而通过目标函数值表征网络结构的质量;通过根据所述目标函数值调整所述采样器的参数,返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值,从而实现网络结构的自动搜索,而且,通过反复调整采样器的参数,以便采样器能够采样出质量更高的网络结构,从而在后续使用时能够得到较佳的结果。本公开实施例将当前网络结构的网络参数和输入数据的格式转换为定点,通过统一转换为定点,能够提升神经网络进行图像处理的适用性,避免在处理某些图像时处理效果较差,并且克服了现有的大多网络参数和输入数据的格式是浮点型,以至于需要计算资源较大,运行时长较长的问题,考虑到了终端的运算能力有限,能够节省终端的运行时长和计算资源等技术效果。
附图说明
图1是本公开实施例一提供的一种神经网络的结构确定方法的流程图;
图2是本公开实施例二提供的一种神经网络的结构确定方法的流程图;
图3a是本公开实施例三提供的一种神经网络的结构确定方法的流程图;
图3b是本公开实施例三提供的预先定义的网络层编码的示意图;
图3c是本公开实施例三提供的一种采样器的结构示意图;
图3d是本公开实施例三提供的一种网络结构的示意图;
图3e是本公开实施例三提供的另一种网络结构的示意图;
图4是本公开实施例四提供的一种神经网络的结构确定装置的结构示意图;
图5是本公开实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分而非全部结构。下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。
实施例一
图1是本公开实施例一提供的一种神经网络的结构确定方法的流程图,本实施例可适用于确定神经网络的结构的情况,该方法可以由神经网络的结构确定装置来执行,该装置可以由硬件和/或软件构成,并集成在电子设备中,该电子设备可以是服务器或者终端。结合图1,本公开实施例提供的方法具体包括如下操作:
S110、通过采样器采样出当前网络结构。继续执行S120。
采样器用于采样出神经网络的网络结构。每次运行采样器可采样出至少一个当前网络结构。
S120、计算当前网络结构的目标函数值。继续执行S130。
目标函数值用于表征当前网络结构的质量。以识别模型为例,目标函数值越高,识别模型的识别结果越准确。以分类模型为例,目标函数值越高,分类模型的置信度越大。
可选地,通过至少一种元素构建目标函数,并计算当前网络结构的目标函数值。其中,构建目标函数的元素根据网络结构的实际需求决定,例如,网络结构需要运行在终端,要求其占用空间小,则元素包括网络结构的占用空间;又例如,要求网络结构具有较高的准确率,则元素包括网络结构的准确率。
S130、判断目标函数值是否达到预设函数值,和/或调整次数是否达到次数阈值。如果是,跳转到S140;如果否,跳转到S150。
本实施例采用预设函数值和次数阈值这两个因素中至少一种,作为循环的截止条件。可选地,可仅采用其中一种因素进行判断,另一种因素舍弃。例如判断目标函数值是否达到预设函数值,或者判断调整次数是否达到次数阈值。可选地,还可以综合两种因素进行判断,例如,同时判断目标函数值是否达到预设函数值,以及调整次数是否达到次数阈值,如果其中之一判断为是,则跳转到S140;如果两种因素均判断为否,即目标函数值未达到预设函数值,且调整次数未达到次数阈值,跳转到S150。
在一具体实施方式中,如果目标函数值达到预设函数值,说明当前网络结构满足实际需求,进而将当前网络结构确定为最终的网络结构,以供后续使用。相反,如果目标函数未达到预设函数值,说明当前网络结构不满足实际需求,可以根据目标函数值调整采样器的参数,并继续采样出下一个网络结构;或者还可以继续判断调整次数是否达到次数阈值。这是因为,在有些情况下,经过很多次调整后,目标函数值依然不能达到预设函数值,为了节省时间和计算资源,如果调整次数达到次数阈值,将当前网络结构确定为最终的网络结构。如果调整次数未达到次数阈值,则根据目标函数值调整采样器的参数,并继续采样出下一个网络结构。
S140、确定当前网络结构,并结束本次操作。
S150、根据目标函数值调整采样器的参数。返回执行S110。
可选地,如果预设函数值是一个较小的值,即目标函数值越小,说明当前网络结构的质量越高,则通过最小化目标函数值调整采样器的参数;如果预设函数值是一个较大的值,即目标函数值越大,说明当前网络结构的质量越高,则通过最大化目标函数值调整采样器的参数。可选地,参数调整方法包括但不限于策略梯度算法,梯度下降法等。
通过调整采样器的参数,使得下一网络结构的目标函数值较当前网络结构的目标函数值更加接近预设函数值,从而有利于采样出质量更高的网络结构。
本公开实施例中,通过采样器采样出当前网络结构,并计算当前网络结构的目标函数值,从而通过目标函数值表征网络结构的质量;通过根据目标函数值调整采样器的参数,返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值,从而实现网络结构的自动搜索,而且,通过反复调整采样器的参数,以便采样器能够采样出质量更高的网络结构,从而在后续使用时能够得到较佳的结果。本公开实施例在具体应用场景中,不拘泥于一种固定的网络结构,而是通过目标函数值不断得到新的、质量更高的网络结构,能够适用于几乎各种场景的数据处理。
实施例二
图2是本公开实施例二提供的一种神经网络的结构确定方法的流程图。本实施例对上述实施例的各可选实施方式进一步优化,可选地,将操作“计算当前网络结构的目标函数值”细化为“计算当前网络结构的准确率和/或运行时长;根据当前网络结构的准确率和/或运行时长,得到目标函数值”,从而采样出准确率较高或者运行时长较短的网络结构。可选地,在操作“根据目标函数值调整采样器的参数”之后,追加“初始化当前网络结构的网络参数;通过数据集,计算当前网络结构的网络参数”从而不仅得到网络结构,还得到合适的网络参数,进而得到最终的神经网络,直接应用到后续数据处理中。结合图2,本实施例提供的方法具体包括以下操作:
S210、通过采样器采样出当前网络结构。
S220、计算当前网络结构的准确率和/或运行时长。
可选地,计算当前网络结构的准确率,或者运行时长,或者准确率和运行时长。其中,准确率指在验证集上的准确率,运行时长指在目标设备上的运行时长,目标设备例如是终端。
对于计算当前网络结构的准确率,首先,采用训练集训练当前网络结构的网络参数;接着,采用验证集计算网络结构的准确率。可选地,将整个训练集划分为两部分,其中一部分,例如70%,作为训练集使用,另一部分,例如30%作为验证集使用。可选地,对于网络结构有两个以上的情况,分别采用训练集训练每个网络结构的网络参数。接着,采用验证集计算每个网络结构的准确率,例如,三个网络结构的准确率分别为80%,85%和90%,在有些应用场景中,验证集计算出的准确率还可以称为得分。进一步,从两个以上的准确率中选择最高的准确率,或者,对两个以上的准确率求平均,得到用于计算目标函数值的准确率。如果选择最高的准确率,则仅保留最高准确率对应的网络结构以及对应的网络参数即可,删除其他网络结构以及对应的网络参数。
在有些情况下,根据训练集得到的网络参数并不能得到较高的准确率,还需要进一步优化。可选地,对于每个当前网络结构,在采用验证集,计算当前网络结构的准确率之前,首先,采用验证集计算当前网络结构的损失值(loss),如果网络结构是分类模型,则通过输出值与基准值之间的交叉熵得到损失值;如果网络结构是回归模型,则通过输出值与基准值之间的欧式距离,得到损失值。接着,根据损失值调整网络参数,具体地,通过最小化损失值,调整网络参数,以使损失值低于损失阈值;返回执行损失值的计算操作,直到损失值低于损失阈值。
对于计算当前网络结构的运行时长,可选地,在终端运行当前网络结构,并获取当前网络结构的运行时长。可选地,当前网络结构的网络参数可以是初始值或者默认值。对于当前网络结构有两个以上的情况,选取任一个当前网络结构或者准确率最高的当前网络结构,以及对应的网络参数和输入数据提供至终端,以供终端通过当前网络结构和网络参数对输入数据进行处理。
大多数情况下,网络参数和输入数据的格式是浮点型,需要计算资源较大,运行时长较长,考虑到终端的运算能力有限,为了节省终端的运行时长和计算资源,在在终端运行当前网络结构,并获取当前网络结构的运行时长之前,将当前网络结构的网络参数和输入数据的格式转换为定点;将网络结构、定点格式的网络参数和输入数据提供至终端。
具体地,获取当前网络结构中各层的输入数据、输出数据和网络参数,确定包括各层的输入数据、输出数据和网络参数的最大数据范围-2-fl~+2fl,得到指数fl。将当前网络结构的网络参数和输入数据除以2fl,得到的商进行取整,从而转化为定点格式,提供至终端。可选地,终端对当前网络结构分别多次后,综合选取最短运行时长或者平均运行时长,作为用于计算目标函数值的运行时长。
对于计算当前网络结构的准确率和运行时长,可选地,采用训练集,训练当前网络结构的网络参数;采用验证集,计算网络结构的准确率;在终端运行当前网络结构,并获取当前网络结构的运行时长。具体详见上述对“计算当前网络结构的准确率”和“计算当前网络结构的运行时长”的描述。与上述描述不同之处在于,在终端运行当前网络结构时,当前网络结构的网络参数是采用训练集得到的,或者继续根据网络结构的损失值调整得到的。经过训练集得到的网络参数一般是浮点型,则在终端运行当前网络结构,并获取当前网络结构的运行时长之前,将当前网络结构的网络参数和输入数据的格式转换为定点;将网络结构、定点格式的网络参数和输入数据提供至终端。
S230、根据当前网络结构的准确率和/或运行时长,得到目标函数值。
在一可选实施方式中,将当前网络结构的运行时长的倒数或者准确率,直接作为目标函数值。则当前网络结构的运行时长越短,或者,准确率越高,目标函数值越高。进而需要通过最大化目标函数值调整采样器的参数。反之,将当前网络结构的准确率的倒数或者运行时长,直接作为目标函数值,则需要通过最小化目标函数值调整采样器的参数。
在另一可选方式中,根据公式(1),计算当前网络结构m的目标函数值Q(m)。
其中,ACC(m)为当前网络结构m的准确率,t(m)为当前网络结构m的运行时长,r为预设指数,T为常数,表示运行时长阈值。可选地,r的取值详见公式(2)。
可见,t(m)越小,ACC(m)越大,Q(m)越大,需要通过最大化目标函数值调整采样器的参数。如果r采用分段函数形式,则Q(m)随t(m)的变化曲线不够光滑,则将r设置为定值。经过多次试验,r=-0.07时,确定网络结构的速度较快、准确率较高、运行时长较短。
S240、判断目标函数值是否达到预设函数值,和/或调整次数是否达到次数阈值。如果是,跳转到S250;如果否,跳转到S260。
S250、初始化当前网络结构的网络参数;继续执行S251。
S251、通过数据集,计算当前网络结构的网络参数。
S220中描述的验证集和训练集是从整个训练集中划分出的,目的在于计算网络结构的准确率和损失值,以便选取较佳的网络结构,因此,对验证集和训练集的要求不高。然而,在确定了较佳的网络结构之后,还需要再次计算更为合适的网络参数,以便提高网络精度。因此,初始化网络参数,例如,将网络参数设置为初始值。然后,采用整个训练集,训练当前网络结构的网络参数;接着,采用验证集计算网络结构的准确率,其中,验证集是由当前应用场景中的样本数据和标签构成的,以便验证神经网络在当前应用场景中的准确程度。
S260、根据目标函数值调整采样器的参数,返回执行S210。
本公开实施例中,通过计算当前网络结构的准确率和/或运行时长;根据当前网络结构的准确率和/或运行时长,得到目标函数值,从而采样出准确率较高或者运行时长较短的网络结构。通过初始化当前网络结构的网络参数;通过数据集,计算当前网络结构的网络参数,从而不仅得到网络结构,还得到合适的网络参数,进而得到最终的神经网络,直接应用到后续数据处理中,而且提高了神经网络的准确性。
实施例三
图3a是本公开实施例三提供的一种神经网络的结构确定方法的流程图。本实施例对上述各实施例的各可选实施方式进一步优化,可选地,将“通过采样器采样出当前网络结构”优化为“将预先定义的网络层编码输入至采样器中,得到当前网络结构编码;根据当前网络结构编码,构建当前网络结构”,提供了网络结构的采样方法。结合图3a,本实施例提供的方法具体包括以下操作:
S310、将预先定义的网络层编码输入至采样器中,得到当前网络结构编码。
一个网络单元包括至少一个网络层,例如卷积层、池化层和连接层。如果网络单元的堆叠次数为N,则N个网络单元顺次连接,且N个网络单元中包括的网络层,以及网络层的连接关系均相同。N个网络单元顺次连接构成一个模块(block),有的网络结构仅包括一个模块,有的网络结构包括至少两个模块,而每个模块均包括多个顺次连接的网络单元,可能模块包括的网络单元个数不同、网络层不同,总而言之,当前网络结构包括:网络单元中的网络层、网络层的连接关系和网络单元的堆叠次数。
本实施例通过网络层编码和采样器,采样出上述网络结构。在一示例中,图3b示出了预先定义的网络层编码,包括1×1卷积层编码、3×3卷积层编码、5×5卷积层编码、池化层编码、连接层编码和网络单元(Cell)的堆叠次数N等,N是预设的值,例如3、5等。
通过将预先定义的网络层编码输入值采样器中,得到多个相互连接的网络结构子编码,构成当前网络结构编码。其中,当前网络结构编码包括:网络单元中网络层的编码、网络层的连接关系和网络单元的堆叠次数。
如图3c所示,采样器包括多个串联的长短期记忆LSTM网络,可选地,每个LSTM网络的参数(即采样器的参数)可以相同也可以不同,每个LSTM网络的输出端连接输出层。基于此,首先,将预先定义的网络层编码输入至第一个LSTM网络中,从每个LSTM网络连接的输出层获取每个网络结构子编码;可选地,输出层是softmax层,用于从输出内容中选择最大网络结构子编码。结合图3c,将图3b示出的网络层编码输入值第一个LSTM网络中,得到运算结果A1=[0.9 0.2 0.3 0.5 0.1 0]T,通过第一个LSTM连接的输出层,选择最大的网络结构子编码0.9,即1×1卷积层编码。然后将A1输入至第二个LSTM网络,得到运算结果A2=[0 0.80.3 0.5 0.1 0]T,通过第二个LSTM连接的输出层,选择最大的网络结构子编码0.8,即3×3卷积层编码。然后将A2输入至第三个LSTM网络,得到运算结果A3=[0 0.8 0.3 0.5 0.10.9]T,通过第三个LSTM连接的输出层,选择最大的网络结构子编码0.9,即堆叠次数令第一个1×1卷积层编码和3×3卷积层编码构成的网络单元堆叠N次,例如2次。接着,将A3输入至第四个LSTM网络中,得到运算结果A4=[0 0.8 0.3 0.5 0.1 0.1]T,通过第四个LSTM连接的输出层,选择最大的网络结构子编码0.8,即3×3卷积层编码。接着,将A4输入至第五个LSTM网络中,得到运算结果A5=[0 0.6 0.3 0.5 0.1 0.9]T,通过第五个LSTM连接的输出层,选择最大的网络结构子编码0.9,即堆叠次数,则令从前一次堆叠次数之后的第一个网络结构子编码,至当前堆叠次数之前的最后一个网络结构子编码构成网络单元,并将该网络单元堆叠N次,例如2次。本示例中,当前网络单元仅包括3×3卷积层编码,则将3×3卷积层编码堆叠2次。可见,本示例中,当前网络结构包括两个模块,第一个模块包括2个网络单元,第二个模块包括2个网络单元。
接着,如图3c所示,按照多个LSTM网络的串联顺序,对多个网络结构子编码进行排序,得到当前网络结构编码。其中,网络结构子编码包括:网络单元中网络层的编码或者网络单元的堆叠次数。
S320、根据当前网络结构编码,构建当前网络结构。
在一可选实施方式中,根据当前网络结构编码,直接构建当前网络结构,也就是,将当前网络结构编码替换为对应的网络层,并将对应的网络层堆叠N次,如图3d所示。
在另一可选实施方式中,为了减少数据量,根据当前网络结构编码,构建初始网络结构;在初始网络结构中***降采样层,形成当前网络结构。可选地,由于卷积层的运算量较大,在卷积层之前***降采样层,例如,在每个模块的第一个网络单元的首部分别***降采样层,令stride=2,以逐步减少数据量,同时保证网络结构的准确率,如图3e所示。
S330、计算当前网络结构的目标函数值。
S340、判断目标函数值是否达到预设函数值,和/或调整次数是否达到次数阈值。如果是,跳转到S350;如果否,跳转到S360。
S350、确定当前网络结构,并结束本次操作。
S360、根据目标函数值调整采样器的参数。返回执行S310。
本公开实施例中,通过将预先定义的网络层编码输入至采样器中,得到当前网络结构编码;根据当前网络结构编码,构建当前网络结构,提供了网络结构的采样方法;而且,逐层采样的方式符合神经网络的多层次结构,又例如采样出较佳的网络结构。
实施例四
图4是本公开实施例四提供的一种神经网络的结构确定装置的结构示意图,包括:第一获取模块41、第二获取模块42、插值模块43和特征获取模块44。
采样模块41,用于通过采样器采样出当前网络结构;
计算模块42,用于计算当前网络结构的目标函数值;
调整模块43,用于根据目标函数值调整采样器的参数;
返回模块44,用于返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值。
本公开实施例中,通过采样器采样出当前网络结构,并计算当前网络结构的目标函数值,从而通过目标函数值表征网络结构的质量;通过根据目标函数值调整采样器的参数,返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值,从而实现网络结构的自动搜索,而且,通过反复调整采样器的参数,以便采样器能够采样出质量更高的网络结构,从而在后续使用时能够得到较佳的结果。本公开实施例在具体应用场景中,不拘泥于一种固定的网络结构,而是通过目标函数值不断得到新的、质量更高的网络结构,能够适用于几乎各种场景的数据处理。
可选地,计算模块42在计算当前网络结构的目标函数值时,具体用于:计算当前网络结构的准确率和/或运行时长;根据当前网络结构的准确率和/或运行时长,得到目标函数值。
可选地,计算模块42在计算当前网络结构的准确率和运行时长时,具体用于:采用训练集,训练当前网络结构的网络参数;采用验证集,计算网络结构的准确率;在终端运行当前网络结构,并获取当前网络结构的运行时长。
可选地,该装置还包括网络参数调整模块,用于在采用验证集,计算当前网络结构的准确率之前,采用验证集,计算当前网络结构的损失值;根据损失值调整网络参数;返回执行损失值的计算操作,直到损失值低于损失阈值。
可选地,该装置还包括顶点转换模块,用于在在终端运行当前网络结构,并获取当前网络结构的运行时长之前,将当前网络结构的网络参数和输入数据的格式转换为定点;将网络结构、定点格式的网络参数和输入数据提供至终端。
可选地,计算模块42在根据当前网络结构的准确率和/或运行时长,得到目标函数值时,具体用于:根据公式计算当前网络结构m的目标函数值Q(m);其中,ACC(m)为当前网络结构m的准确率,t(m)为当前网络结构m的运行时长,T为常数,r为预设指数。
可选地,采样模块41在通过采样器采样出当前网络结构时,具体用于:将预先定义的网络层编码输入至采样器中,得到当前网络结构编码;根据当前网络结构编码,构建当前网络结构;其中,当前网络结构编码包括:网络单元中网络层的编码、网络层的连接关系和网络单元的堆叠次数,当前网络结构包括:网络单元中的网络层、网络层的连接关系和网络单元的堆叠次数。
可选地,采样器包括多个串联的长短期记忆LSTM网络,每个LSTM网络的输出端连接输出层。采样模块41在将预先定义的网络层编码输入至采样器中,得到当前网络结构编码时,具体用于:将预先定义的网络层编码输入至第一个LSTM网络中,从每个LSTM网络连接的输出层获取每个网络结构子编码;按照多个LSTM网络的串联顺序,对多个网络结构子编码进行排序,得到当前网络结构编码;其中,网络结构子编码包括:网络单元中网络层的编码或者网络单元的堆叠次数。
可选地,采样模块41在根据当前网络结构编码,构建当前网络结构时,具体用于:根据当前网络结构编码,构建初始网络结构;在初始网络结构中***降采样层,形成当前网络结构。
可选地,该装置还包括网络参数计算模块,用于在返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值之后,初始化当前网络结构的网络参数;通过数据集,计算当前网络结构的网络参数。
本公开实施例所提供的神经网络的结构确定装置可执行本公开任意实施例所提供的神经网络的结构确定方法,具备执行方法相应的功能模块和有益效果。
实施例五
下面参考图5,其示出了适于用来实现本公开实施例的电子设备500的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端,或者各种形式的服务器,如独立服务器或者服务器集群。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储装置(ROM)502中的程序或者从存储装置505加载到随机访问存储装置(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行可操作控件的显示方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置505被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储装置(RAM)、只读存储装置(ROM)、可擦式可编程只读存储装置(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储装置(CD-ROM)、光存储装置件、磁存储装置件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该处理装置执行时,使得该电子设备:通过采样器采样出当前网络结构;计算当前网络结构的目标函数值;根据目标函数值调整采样器的参数;返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,采样模块还可以被描述为“当前网络结构的采样模块”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (11)
1.一种神经网络的结构确定方法,用于图像处理,其特征在于,包括:
通过采样器采样出当前网络结构;
将当前网络结构的网络参数和输入数据的格式转换为定点;将网络结构、定点格式的网络参数和输入数据提供至终端;在终端运行当前网络结构,并获取当前网络结构的运行时长,根据当前网络结构的运行时长,计算当前网络结构的目标函数值;所述目标函数值用于表征所述网络结构的质量,所述目标函数是由至少一种元素构建的,其中,构建所述目标函数的元素根据所述网络结构的实际需求决定;
根据所述目标函数值调整所述采样器的参数;
返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值。
2.根据权利要求1所述的方法,其特征在于,所述计算当前网络结构的目标函数值,包括:
采用训练集,训练当前网络结构的网络参数;
采用验证集,计算当前网络结构的准确率;
在终端运行当前网络结构,并获取当前网络结构的运行时长;
根据当前网络结构的准确率和运行时长,得到目标函数值。
3.根据权利要求2所述的方法,其特征在于,在所述采用验证集,计算当前网络结构的准确率之前,还包括:
采用验证集,计算当前网络结构的损失值;
根据所述损失值调整网络参数;
返回执行损失值的计算操作,直到损失值低于损失阈值。
5.根据权利要求1所述的方法,其特征在于,所述通过采样器采样出当前网络结构,包括:
将预先定义的网络层编码输入至采样器中,得到当前网络结构编码;
根据当前网络结构编码,构建当前网络结构;
其中,当前网络结构编码包括:网络单元中网络层的编码、网络层的连接关系和网络单元的堆叠次数,所述当前网络结构包括:网络单元中的网络层、网络层的连接关系和网络单元的堆叠次数。
6.根据权利要求5所述的方法,其特征在于,所述采样器包括多个串联的长短期记忆LSTM网络,每个LSTM网络的输出端连接输出层;
所述将预先定义的网络层编码输入至采样器中,得到当前网络结构编码,包括:
将预先定义的网络层编码输入至第一个LSTM网络中,从每个LSTM网络连接的输出层获取每个网络结构子编码;
按照多个LSTM网络的串联顺序,对多个网络结构子编码进行排序,得到当前网络结构编码;
其中,所述网络结构子编码包括:网络单元中网络层的编码或者网络单元的堆叠次数。
7.根据权利要求5所述的方法,其特征在于,所述根据当前网络结构编码,构建当前网络结构,包括:
根据当前网络结构编码,构建初始网络结构;
在初始网络结构中***降采样层,形成当前网络结构。
8.根据权利要求1-7任一项所述的方法,其特征在于,在返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值之后,还包括:
初始化当前网络结构的网络参数;
通过数据集,计算当前网络结构的网络参数。
9.一种神经网络的结构确定装置,用于图像处理,其特征在于,包括:
采样模块,用于通过采样器采样出当前网络结构;
计算模块,用于将当前网络结构的网络参数和输入数据的格式转换为定点;将网络结构、定点格式的网络参数和输入数据提供至终端;在终端运行当前网络结构,并获取当前网络结构的运行时长,根据当前网络结构的运行时长,计算当前网络结构的目标函数值;所述目标函数值用于表征所述网络结构的质量,所述目标函数是由至少一种元素构建的,其中,构建目标函数的元素根据网络结构的实际需求决定;
调整模块,用于根据所述目标函数值调整所述采样器的参数;
返回模块,用于返回执行通过采样器采样出当前网络结构的操作,直到目标函数值达到预设函数值,和/或调整次数达到次数阈值。
10.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理装置;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如权利要求1-8中任一所述的神经网络的结构确定方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现如权利要求1-8中任一所述的神经网络的结构确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811494899.1A CN109359727B (zh) | 2018-12-07 | 2018-12-07 | 神经网络的结构确定方法、装置、设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811494899.1A CN109359727B (zh) | 2018-12-07 | 2018-12-07 | 神经网络的结构确定方法、装置、设备及可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109359727A CN109359727A (zh) | 2019-02-19 |
CN109359727B true CN109359727B (zh) | 2022-01-11 |
Family
ID=65331758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811494899.1A Active CN109359727B (zh) | 2018-12-07 | 2018-12-07 | 神经网络的结构确定方法、装置、设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109359727B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109905880B (zh) * | 2019-03-22 | 2020-05-29 | 苏州浪潮智能科技有限公司 | 一种网络划分方法、***及电子设备和存储介质 |
CN110084172B (zh) * | 2019-04-23 | 2022-07-29 | 北京字节跳动网络技术有限公司 | 文字识别方法、装置和电子设备 |
CN112283889A (zh) * | 2020-10-10 | 2021-01-29 | 广东美的暖通设备有限公司 | 空调的预启动时间控制方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
WO2017142397A1 (en) * | 2016-02-19 | 2017-08-24 | Scyfer B.V. | Device and method for generating a group equivariant convolutional neural network |
CN108228325A (zh) * | 2017-10-31 | 2018-06-29 | 深圳市商汤科技有限公司 | 应用管理方法和装置、电子设备、计算机存储介质 |
CN108229647A (zh) * | 2017-08-18 | 2018-06-29 | 北京市商汤科技开发有限公司 | 神经网络结构的生成方法和装置、电子设备、存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9390370B2 (en) * | 2012-08-28 | 2016-07-12 | International Business Machines Corporation | Training deep neural network acoustic models using distributed hessian-free optimization |
WO2016083657A1 (en) * | 2014-11-26 | 2016-06-02 | CURIOUS Al OY | Neural network structure and a method thereto |
CN108009625B (zh) * | 2016-11-01 | 2020-11-06 | 赛灵思公司 | 人工神经网络定点化后的微调方法和装置 |
CN107480770B (zh) * | 2017-07-27 | 2020-07-28 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107909583B (zh) * | 2017-11-08 | 2020-01-10 | 维沃移动通信有限公司 | 一种图像处理方法、装置及终端 |
CN108564165B (zh) * | 2018-03-13 | 2024-01-23 | 上海交通大学 | 卷积神经网络定点化优化的方法及*** |
CN108921210B (zh) * | 2018-06-26 | 2021-03-26 | 南京信息工程大学 | 一种基于卷积神经网络的云分类方法 |
-
2018
- 2018-12-07 CN CN201811494899.1A patent/CN109359727B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
WO2017142397A1 (en) * | 2016-02-19 | 2017-08-24 | Scyfer B.V. | Device and method for generating a group equivariant convolutional neural network |
CN108229647A (zh) * | 2017-08-18 | 2018-06-29 | 北京市商汤科技开发有限公司 | 神经网络结构的生成方法和装置、电子设备、存储介质 |
CN108228325A (zh) * | 2017-10-31 | 2018-06-29 | 深圳市商汤科技有限公司 | 应用管理方法和装置、电子设备、计算机存储介质 |
Non-Patent Citations (5)
Title |
---|
BlockQNN: Efficient Block-wise Neural Network Architecture Generation;Zhao Zhong等;《arXiv》;20180819;第1-14页 * |
GPU-based parallel optimization of immune convolutional neural network and embedded system;Tao Gong等;《Engineering Applications of Artificial Intelligence》;20170630;第62卷;第384-395页 * |
Overcoming Challenges in Fixed Point Training of Deep Convolutional Networks;Darryl D. Lin等;《arXiv》;20160708;第1-5页 * |
基于扩展神经网络的非线性不确定***自适应控制设计研究;陈浩广;《中国博士学位论文全文数据库 信息科技辑》;20180815(第08期);第I140-18页 * |
浮点傅里叶变换硬件架构综合研究;冯淦;《中国硕士学位论文全文数据库 信息科技辑》;20180131(第01期);第I138-37页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109359727A (zh) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413812B (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
CN113436620B (zh) | 语音识别模型的训练方法、语音识别方法、装置、介质及设备 | |
CN110189246B (zh) | 图像风格化生成方法、装置及电子设备 | |
CN112258512B (zh) | 点云分割方法、装置、设备和存储介质 | |
CN109359727B (zh) | 神经网络的结构确定方法、装置、设备及可读介质 | |
CN110009059B (zh) | 用于生成模型的方法和装置 | |
CN113362811B (zh) | 语音识别模型的训练方法、语音识别方法和装置 | |
CN112149699B (zh) | 用于生成模型的方法、装置和用于识别图像的方法、装置 | |
CN113327599B (zh) | 语音识别方法、装置、介质及电子设备 | |
CN113033580B (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN110009101B (zh) | 用于生成量化神经网络的方法和装置 | |
CN109919220B (zh) | 用于生成视频的特征向量的方法和装置 | |
CN113256339B (zh) | 资源投放的方法、装置、存储介质及电子设备 | |
CN113902636A (zh) | 图像去模糊方法及装置、计算机可读介质和电子设备 | |
CN113140012A (zh) | 图像处理方法、装置、介质及电子设备 | |
CN110197459B (zh) | 图像风格化生成方法、装置及电子设备 | |
CN111915689A (zh) | 用于生成目标函数的方法、装置、电子设备和计算机可读介质 | |
CN116090543A (zh) | 模型压缩方法及装置、计算机可读介质和电子设备 | |
CN115937020A (zh) | 图像处理方法、装置、设备、介质和程序产品 | |
CN113593527B (zh) | 一种生成声学特征、语音模型训练、语音识别方法及装置 | |
CN111582456B (zh) | 用于生成网络模型信息的方法、装置、设备和介质 | |
CN114648712B (zh) | 视频分类方法、装置、电子设备及计算机可读存储介质 | |
CN111626044B (zh) | 文本生成方法、装置、电子设备及计算机可读存储介质 | |
CN110704679B (zh) | 视频分类方法、装置及电子设备 | |
CN110188833B (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 |