CN112149797B - 神经网络结构优化方法和装置、电子设备 - Google Patents

神经网络结构优化方法和装置、电子设备 Download PDF

Info

Publication number
CN112149797B
CN112149797B CN202010830807.3A CN202010830807A CN112149797B CN 112149797 B CN112149797 B CN 112149797B CN 202010830807 A CN202010830807 A CN 202010830807A CN 112149797 B CN112149797 B CN 112149797B
Authority
CN
China
Prior art keywords
network
neural network
current
core
target
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
CN202010830807.3A
Other languages
English (en)
Other versions
CN112149797A (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.)
Oppo Chongqing Intelligent Technology Co Ltd
Original Assignee
Oppo Chongqing Intelligent 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 Oppo Chongqing Intelligent Technology Co Ltd filed Critical Oppo Chongqing Intelligent Technology Co Ltd
Priority to CN202010830807.3A priority Critical patent/CN112149797B/zh
Publication of CN112149797A publication Critical patent/CN112149797A/zh
Application granted granted Critical
Publication of CN112149797B publication Critical patent/CN112149797B/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

Abstract

本申请涉及一种神经网络结构优化方法,包括:获取当前结构优化网络输出的网络结构信息,调整核心神经网络的网络结构得到更新后的核心神经网络;训练更新后的核心神经网络直到达到收敛条件,得到已训练的核心神经网络;获取已训练的核心神经网络对应的评价指标参数,计算得到当前结构优化网络的损失函数值;基于损失函数值调整当前结构优化网络的网络参数得到更新的结构优化网络,将更新的结构优化网络作为当前结构优化网络,将网络结构信息作为当前结构优化网络的输入,返回获取当前结构优化网络输出的网络结构信息的步骤,直至结构优化网络满足收敛条件;通过输出的网络结构信息确定核心神经网络的目标网络结构,提高神经网络的处理效率。

Description

神经网络结构优化方法和装置、电子设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种神经网络结构优化、神经网络训练方法和装置、电子设备以及计算机可读存储介质。
背景技术
神经网络在人脸识别、语音识别、影像处理等多方面有出色效果,但另一方面,神经网络往往需要庞大的计算资源,限制了在移动端的应用。为此开发了一系列降低神经网络运算量的技术,如优化神经网络结构,优化神经网络训练速度,从而降低神经网络的运算复杂度。
传统的神经网络处理方法,如神经网络结构优化的方法和神经网络训练方法,往往存在处理效率低的问题。
发明内容
本申请实施例提供一种神经网络结构优化、神经网络训练方法和装置、电子设备以及计算机可读存储介质,提高神经网络的处理效率。
一种神经网络结构优化方法,包括:
获取当前结构优化网络输出的网络结构信息;
根据所述网络结构信息调整核心神经网络的网络结构得到更新后的核心神经网络;
训练所述更新后的核心神经网络直到达到收敛条件,得到已训练的核心神经网络;
获取所述已训练的核心神经网络对应的评价指标参数;
根据所述评价指标参数计算得到所述当前结构优化网络的损失函数值;
基于所述损失函数值调整所述当前结构优化网络的网络参数得到更新的结构优化网络,将所述更新的结构优化网络作为所述当前结构优化网络,将所述网络结构信息作为所述当前结构优化网络的输入,返回所述获取当前结构优化网络输出的网络结构信息的步骤,直至结构优化网络满足收敛条件;
通过满足收敛条件的结构优化网络输出的网络结构信息确定核心神经网络的目标网络结构。
一种神经网络结构优化装置,包括:
获取模块,用于获取当前结构优化网络输出的网络结构信息;
核心神经网络结构调整模块,用于根据所述网络结构信息调整核心神经网络的网络结构得到更新后的核心神经网络;
核心神经网络训练模块,用于训练所述更新后的核心神经网络直到达到收敛条件,得到已训练的核心神经网络;
结构优化网络损失计算模块,用于获取所述已训练的核心神经网络对应的评价指标参数,根据所述评价指标参数计算得到所述当前结构优化网络的损失函数值;
结构优化网络调整模块,用于基于所述损失函数值调整所述当前结构优化网络的网络参数得到更新的结构优化网络,将所述更新的结构优化网络作为所述当前结构优化网络,将所述网络结构信息作为所述当前结构优化网络的输入,返回所述获取模块,直至结构优化网络满足收敛条件;
网络结构确定模块,用于通过满足收敛条件的结构优化网络输出的网络结构信息确定核心神经网络的目标网络结构。
一种电子设备,包括存储器以及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
获取当前结构优化网络输出的网络结构信息;
根据所述网络结构信息调整核心神经网络的网络结构得到更新后的核心神经网络;
训练所述更新后的核心神经网络直到达到收敛条件,得到已训练的核心神经网络;
获取所述已训练的核心神经网络对应的评价指标参数;
根据所述评价指标参数计算得到所述当前结构优化网络的损失函数值;
基于所述损失函数值调整所述当前结构优化网络的网络参数得到更新的结构优化网络,将所述更新的结构优化网络作为所述当前结构优化网络,将所述网络结构信息作为所述当前结构优化网络的输入,返回所述获取当前结构优化网络输出的网络结构信息的步骤,直至结构优化网络满足收敛条件;
通过满足收敛条件的结构优化网络输出的网络结构信息确定核心神经网络的目标网络结构。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
获取当前结构优化网络输出的网络结构信息;
根据所述网络结构信息调整核心神经网络的网络结构得到更新后的核心神经网络;
训练所述更新后的核心神经网络直到达到收敛条件,得到已训练的核心神经网络;
获取所述已训练的核心神经网络对应的评价指标参数;
根据所述评价指标参数计算得到所述当前结构优化网络的损失函数值;
基于所述损失函数值调整所述当前结构优化网络的网络参数得到更新的结构优化网络,将所述更新的结构优化网络作为所述当前结构优化网络,将所述网络结构信息作为所述当前结构优化网络的输入,返回所述获取当前结构优化网络输出的网络结构信息的步骤,直至结构优化网络满足收敛条件;
通过满足收敛条件的结构优化网络输出的网络结构信息确定核心神经网络的目标网络结构。
上述神经网络结构优化方法、装置、电子设备以及计算机可读存储介质,通过结构优化网络输出网络结构信息。核心神经网络照此调整网络结构,并进行训练,直至核心神经网络收敛,结构优化网络的损失函数根据核心神经网络的评价指标参数,算出结构优化网络的损失函数值,结构优化网络根据损失函数值,更新结构优化网络,然后输入当前的网络结构信息,又输出新的网络结构信息。重复该过程,直至结构优化网络收敛,则核心神经网络完成优化,在核心神经网络的上层再嵌套一个结构优化网络。该结构优化网络根据核心神经网络的评价指标,优化原核心神经网络的结构信息,在两个网络的交替训练中逐渐将核心神经网络的网络结构趋于最优。可快速高效地迭代出最优的网络结构,达到评价指标的平衡,且优化过程无需监督,节省人力与开发时间。可应用在网络结构调整、网络剪枝、网络量化等不同的方面。
一种神经网络训练方法,包括:
获取当前参数优化网络输出的网络训练参数信息;
根据所述网络训练参数信息训练核心神经网络的网络参数,得到更新的核心神经网络;
获取所述更新的核心神经网络对应的评价指标参数;
根据所述评价指标参数计算得到所述当前参数优化网络的损失函数值;
基于所述损失函数值调整所述当前参数优化网络的网络参数得到更新的参数优化网络,将所述更新的参数优化网络作为所述当前参数优化网络,将所述网络训练参数信息作为所述当前参数优化网络的输入,返回所述获取当前参数优化网络输出的网络训练参数信息的步骤;
当所述核心神经网络满足收敛条件时,得到已训练的核心神经网络。
一种神经网络训练装置,包括:
获取模块,用于获取当前参数优化网络输出的网络训练参数信息;
核心神经网络训练模块,用于根据所述网络训练参数信息训练核心神经网络的网络参数,得到更新的核心神经网络;
参数优化网络损失计算模块,用于获取所述更新的核心神经网络对应的评价指标参数,根据所述评价指标参数计算得到所述当前参数优化网络的损失函数值;
参数优化网络调整模块,用于基于所述损失函数值调整所述当前参数优化网络的网络参数得到更新的参数优化网络,将所述更新的参数优化网络作为所述当前参数优化网络,将所述网络训练参数信息作为所述当前参数优化网络的输入,返回所述获取模块;
核心神经网络确定模块,用于当所述核心神经网络满足收敛条件时,得到已训练的核心神经网络。
一种电子设备,包括存储器以及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
获取当前参数优化网络输出的网络训练参数信息;
根据所述网络训练参数信息训练核心神经网络的网络参数,得到更新的核心神经网络;
获取所述更新的核心神经网络对应的评价指标参数;
根据所述评价指标参数计算得到所述当前参数优化网络的损失函数值;
基于所述损失函数值调整所述当前参数优化网络的网络参数得到更新的参数优化网络,将所述更新的参数优化网络作为所述当前参数优化网络,将所述网络训练参数信息作为所述当前参数优化网络的输入,返回所述获取当前参数优化网络输出的网络训练参数信息的步骤;
当所述核心神经网络满足收敛条件时,得到已训练的核心神经网络。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
获取当前参数优化网络输出的网络训练参数信息;
根据所述网络训练参数信息训练核心神经网络的网络参数,得到更新的核心神经网络;
获取所述更新的核心神经网络对应的评价指标参数;
根据所述评价指标参数计算得到所述当前参数优化网络的损失函数值;
基于所述损失函数值调整所述当前参数优化网络的网络参数得到更新的参数优化网络,将所述更新的参数优化网络作为所述当前参数优化网络,将所述网络训练参数信息作为所述当前参数优化网络的输入,返回所述获取当前参数优化网络输出的网络训练参数信息的步骤;
当所述核心神经网络满足收敛条件时,得到已训练的核心神经网络。
上述神经网络训练方法、装置、电子设备以及计算机可读存储介质,通过参数优化网络输出的网络训练参数信息对核心神经网络的训练参数进行调整,优化后的训练参数,有助于提升神经网络的收敛速度和收敛效果,从而提高训练效率和性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中神经网络结构优化方法、神经网络训练方法的应用环境图;
图2为一个实施例中神经网络结构优化方法的流程示意图;
图3为一个实施例中神经网络结构优化的流程原理图;
图4为一个实施例中神经网络结构优化方法的流程示意图;
图5为一个实施例中核心神经网络的初始网络结构示意图;
图6为一个实施例中结构优化网络的结构示意图;
图7为一个实施例中神经网络结构优化装置的结构框图;
图8为一个实施例中神经网络训练装置的结构框图;
图9为一个实施例中电子设备的内部结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中神经网络结构优化、神经网络训练方法的应用环境图。如图1所示,该应用环境包括终端110和服务器120,终端110获取核心神经网络,将包括核心神经网络的神经网络处理请求发送至服务器120,服务器120通过交替训练结构优化网络和核心神经网络,快速高效地迭代出最优的核心神经网络的网络结构,服务器120还可以通过交替训练参数优化网络和核心神经网络提高核心神经网络的收敛速度,高效地训练得到已训练的核心神经网络,提高核心神经网络的性能。服务器120可以将优化后的网络结构信息和已训练的核心神经网络返回至终端110。其中终端110可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、车载电脑、穿戴式设备等终端设备。终端设备可以从将各种不同业务功能的神经网络作为核心神经网络,核心神经网络的功能包括但不限于人脸识别、语音识别、影像处理等。其中服务器120可以为一个服务器或服务器集群。
在一些实施例中,神经网络结构优化方法、神经网络训练方法也可以应用于终端110,由终端110直接执行上述步骤得到优化后的核心神经网络的目标网络结构和得到已训练的核心神经网络。
图2为一个实施例中神经网络结构优化方法的流程图。图2所示的神经网络结构优化方法可应用于上述终端110或服务器120中,结合图3所示的流程原理图,包括:
步骤202,获取当前结构优化网络输出的网络结构信息。
其中,结构优化网络是用于优化核心神经网络的网络结构,得到优化后的网络结构信息的神经网络,可以是深度神经网络,包括卷积层,池化层、连接层等网络结构。网络结构信息是用于确定核心神经网络的网络结构的信息,可以包括一种或多种不同类型的信息。
具体地,当前结构优化网络的输入是当前核心神经网络的网络结构信息,输出是核心神经网络优化后的网络结构信息。网络结构信息可以包括但不限于神经网络层数、神经网络层对应的输出通道数、神经网络层对应的权重精度、神经网络层的激活函数的输出精度、神经网络层对应的权重修剪阈值,神经元对应的权重精度等。网络结构信息是数组、矩阵、向量等形式。当前结构优化网络输出的网络结构信息用于调整核心神经网络的网络结构。
在一个实施例中,结构优化网络的初始输入是核心神经网络的原始结构信息,此时,结构优化网络的作用是优化核心网络的原始结构。
在一个实施例中,结构优化网络的初始输入是随机初始量,确定一个以随机初始量为结构信息形成的初始核心神经网络,此时,结构优化网络的作用是从零开始设计一个核心神经网络。
步骤204,根据网络结构信息调整核心神经网络的网络结构得到更新后的核心神经网络。
具体地,根据网络结构信息的类型对应调整核心神经网络的网络结构。当网络结构信息包括神经网络层数时,则对核心神经网络的神经网络层数进行调整,如调整前核心神经网络的神经网络层数为10层,网络结构信息对应的神经网络层数为8层,则调整后核心神经网络的神经网络层数为8层。
当网络结构信息包括神经网络层对应的输出通道数时,网络结构信息包括核心神经网络的各个核心神经网络的目标输出通道数,按照网络结构信息对核心神经网络的各个神经网络层对应的输出通道进行调整。
当网络结构信息包括神经网络层对应的权重精度时,每个神经网络层具有相同的权重精度,权重精度可以通过各层权重占用的比特数n来表示。根据当前网络权重所在的神经网络层对应的比特数n,将当前网络权重转换为整数,且只占用比特数n位。从而可以将占用比特数位多的网络权重转换为占用比特数位少的形式表示,降低网络权重的比特数,从而降低神经网络的存储空间及运算量。在一个实施例中,针对每个神经元设置对应的权重精度,同一个神经网络层的不同神经元可以具有不同的权重精度,进一步提高了权重精度设置的灵活性,使得神经网络的运算量的减少变得更加智能。
当网络结构信息包括神经网络层的激活函数的输出精度时,每个神经网络层的激活函数的输出具有相同的输出精度,输出精度可以通过占用的比特数n来表示。根据当前激活函数所在的神经网络层对应的比特数n,将当前激活函数的输出转换为整数,且只占用比特数n位。从而可以将占用比特数位多的激活函数的输出转换为占用比特数位少的形式表示,降低激活函数的输出的比特数,从而降低系统所需的带宽,同时也降低网络的后一层所需的运算量。在一个实施例中,针对每个激活函数设置对应的输出精度,同一个神经网络层的不同激活函数的输出可以具有不同的输出精度,进一步提高了输出精度设置的灵活性,使得神经网络的运算量的减少变得更加智能。
当网络结构信息包括神经网络层对应的权重修剪阈值时,将每个神经网络层的网络权重与对应的权重修剪阈值进行对比,根据对比结果对网络权重进行修剪。如果当前网络权重小于权重修剪阈值,则将当前网络权重替换为0,如果当前网络权重大于或等于权重修剪阈值,则保持当前网络权重不变,提高网络权重中0的比例,有利于提高网络权重的压缩率,使得神经网络的运算量减少。
可以理解,网络结构信息还可为上述类型之外的信息,适用于神经网络可调整的结构元素,不作限定。
步骤206,训练更新后的核心神经网络直到达到收敛条件,得到已训练的核心神经网络。
具体地,对更新网络结构后的核心神经网络进行训练,可通过反向传播调整网络参数,直至核心神经网络的损失函数值稳定,或达到预设的训练次数,得到已训练的核心神经网络。
步骤208,获取已训练的核心神经网络对应的评价指标参数,根据评价指标参数计算得到当前结构优化网络的损失函数值。
其中,评价指标参数是用于对核心神经网络进行评价的信息,可以包括不同类型的评价信息,如包括成本评价信息、性能评价信息、稳定性评价信息等,可自定义。通过一种或多种评价信息确定结构优化网络的损失函数,将评价指标参数代入损失函数计算得到当前结构优化网络的损失函数值。
步骤210,基于损失函数值调整当前结构优化网络的网络参数得到更新的结构优化网络,将更新的结构优化网络作为当前结构优化网络,将网络结构信息作为当前结构优化网络的输入,返回获取当前结构优化网络输出的网络结构信息的步骤,直至结构优化网络满足收敛条件。
具体地,结构优化网络的训练目标是降低结构优化网络的损失函数的数值。如果第n次的数值低于第(n-1)次,表明评价指标对应的综合表现提升,反向传播后结构优化网络的权重会按照原有的分布演进;如果第n次的数值高于第(n-1)次,表明评价指标对应的综合表现降低,反向传播后结构优化网络的权重会偏离原有的分布。输入当前的网络结构信息至更新后的当前结构优化网络,又输出一组新的网络结构信息,进行下一次的训练。重复该过程,直至结构优化网络的损失函数值趋于稳定,或达到预设的最大优化次数,在两个神经网络的交替训练中逐渐将核心神经网络的结构趋于最优,核心神经网络完成优化。
步骤212,通过满足收敛条件的结构优化网络输出的网络结构信息确定核心神经网络的目标网络结构。
具体地,根据满足收敛条件的结构优化网络输出的网络结构信息,确定核心神经网络的目标网络结构。
本实施例中的神经网络结构优化方法,通过结构优化网络输出网络结构信息。核心神经网络照此调整网络结构,并进行训练,直至核心神经网络收敛,结构优化网络的损失函数根据核心神经网络的评价指标参数,算出结构优化网络的损失函数值,结构优化网络根据损失函数值,更新结构优化网络,然后输入当前的网络结构信息,又输出新的网络结构信息。重复该过程,直至结构优化网络收敛,则核心神经网络完成优化,在核心神经网络的上层再嵌套一个结构优化网络。该结构优化网络根据核心神经网络的评价指标,优化原核心神经网络的结构信息,在两个网络的交替训练中逐渐将核心神经网络的网络结构趋于最优。可快速高效地迭代出最优的网络结构,达到评价指标的平衡,且优化过程无需监督,节省人力与开发时间。可应用在网络结构调整、网络剪枝、网络量化等不同的方面。
如图4所示,为一个实施例中神经网络结构优化方法的流程示意图,结构优化网络输出网络结构信息,根据网络结构信息为核心神经网络设定结构,核心神经网络进行训练,直到核心神经网络的损失函数收敛或训练次数达到预设值,结构优化网络损失函数综合计算已训练的核心神经网络性能和成本,当结构优化网络的损失函数收敛或训练次数达到预设值时,优化完成,输出核心神经网络的结构信息,否则反向传播,更新结构优化网络,将本次的网络结构信息输入至结构优化网络输出新的网络结构信息。
在一个实施例中,网络结构信息包括以下信息中的至少一种:神经网络层数;神经网络层对应的输出通道数;神经网络层对应的权重精度;神经网络层的激活函数的输出精度;神经网络层对应的权重修剪阈值。
具体地,网络结构信息可以为一种或多种类型的信息,当网络结构信息为一种类型的信息时,网络结构信息可表示为一个数组或一维向量,数组或向量中的数字代表核心神经网络各局部模块中的网络结构信息,如卷积层的层数,或代表核心神经网络各残差层跳过的层数,卷积层的输出通道数,卷积层的权重精度,卷积层的激活函数的输出精度,卷积层的权重修剪阈值等。当网络结构信息包括两种或两种以上不同类型的信息时,可以表示成矩阵或多维向量,同时调整多类结构信息。例如,矩阵的第一列代表各神经网络层的输出通道数,矩阵的第二列代表各神经网络层的权重精度,矩阵的第三列代表各神经网络层的激活函数的输出精度,从而同时优化三个方面。
本实施例中,网络结构信息包括一种或多种类型的结构信息,可从一个或多个方面对网络结构进行调整,可根据需要自定义网络结构信息,提高了网络结构调整的灵活性。
在一个实施例中,当网络结构信息包括神经网络层对应的输出通道数时,步骤204包括:根据网络结构信息确定核心神经网络的各个神经网络层对应的目标输出通道数;以目标输出通道数为目标,调整核心神经网络中对应的神经网络层的输出通道;将核心神经网络中目标输出通道数小于或等于0的神经网络层进行删除。
具体地,当用数组或矩阵表示结构信息时,数组或矩阵中的数字依次表示核心神经网络的各神经网络层的目标输出通道数,输出通道数代表神经网络层的权重量,输出通道数越多,则权重量越大。当某个神经网络层的目标输出通道数小于等于零时,代表该神经网络层被删除。核心神经网络可根据输出通道数调整局部的或全局的结构。不同的神经网络层可以对应相同或不同的输出通道数。
本实施例中,按照网络结构信息对核心神经网络的各个神经网络层对应的输出通道进行调整,当目标输出通道数小于或等于0时,将神经网络层进行删除,可智能高效的减少神经网络的运算量。
在一个实施例中,当网络结构信息包括神经网络层对应的权重精度时,步骤204包括:根据网络结构信息获取当前网络权重所在的神经网络层对应的第一目标比特数;将当前网络权重转换为第一目标整数值,第一目标整数值占用的比特位数为第一目标比特数,第一目标比特数小于当前网络权重的原始占用比特数。
具体地,用数组或矩阵表示结构信息时,数组或矩阵中的数字依次表示核心神经网络的各神经网络层的网络权重的比特数n。执行该结构信息时,将核心神经网络的某层原权重记为w,该层对应的比特数记为n,如果w的绝对值小于预设阈值时,预设阈值时可自定义,如定义为1,则根据第一变换算法转换得到对应的第一目标整数值;如果w的绝对值大于或等于预设阈值,则根据第二变换算法转换得到对应的第一目标整数值。其中第一变换算法和第二变换算法可自定义。通过降低网络权重的比特数,从而降低神经网络的存储空间及运算量。例如,原本每个网络权重要用32bit表示,现仅保留高八位,则神经网络的存储空间降为四分之一,运算消耗的硬件乘法器资源也大幅降低。不同的神经网络层可以设置相同或不同的权重精度,对应不同的目标比特数。
本实施例中,将占用比特数位多的网络权重转换为占用比特数位少的形式表示,降低网络权重的比特数,从而降低神经网络的存储空间及运算量。
在一个实施例中,当网络结构信息包括神经网络层的激活函数的输出精度时,步骤204 包括:根据网络结构信息获取当前激活函数所在的神经网络层对应的第二目标比特数;将当前激活函数的当前输出值转换为第二目标整数值,第二目标整数值占用的比特位数为所述第二目标比特数,第二目标比特数小于当前输出值的原始占用比特数。
具体地,用数组或矩阵表示结构信息,数组或矩阵中的数字依次表示核心神经网络各神经网络层的激活函数的输出结果的比特数n。执行该结构信息时,将核心神经网络的某层激活函数的输出值记为q,该层对应的比特数记为n,如果q的绝对值小于预设阈值,预设阈值时可自定义,如定义为1,则q根据第三变换算法转换为对应的第二目标整数值,如果核心神经网络的激活函数的输出值q的绝对值大于或等于预设阈值,则根据第四变换算法转换为对应的第二目标整数值,其中第一变换算法和第二变换算法可自定义。不同的神经网络层可以设置相同或不同的输出精度,对应不同的目标比特数。
本实施例中,第二目标比特数小于当前输出值的原始占用比特数,将占用比特数位多的激活函数的输出结果转换为占用比特数位少的形式表示,仅保留中间运算量的高位,降低系统所需的带宽,同时也降低网络的后一层所需的运算量。
在一个实施例中,待转换数据为当前网络权重或当前输出值,将待转换数据转换为对应的目标整数值包括以下步骤:当待转换数据w的绝对值小于1时,将待转换数据w转换为 int(w*2n)/2n;当待转换数据w的绝对值大于或等于1时,将待转换数据w转换为int(w/2n)*2n,其中int()代表截断取整,n表示目标整数值占用的比特数。
具体地,当前网络权重或当前输出值一般为小数,常见类型为32bit浮点型,通过转换,将其转换为相近的比特数为n位的整数。如待转换数据w是0.6,把它转换成8bit的整数形式,则可以通过int(0.6*256)/28,即153/28,前面的153可以进行常规的整数乘法,后面的‘/28’用移位运算实现,此处的移位运算可理解为舍弃二进制的低八位。所以,如果要计算0.6*10,在转换之后,实际上变成了,先用153乘以10,得到1530,再舍弃1530的二进制形式的低八位,在硬件上实现更简单,硬件中的整数运算远比小数运算的运算复杂度低。如果待转换数据w的绝对值大于或等于1时,则通过int(w/2n)*2n进行转换,同样达到降低运算复杂度的效果。
本实施例中,实现了数据占用比特数位数降低的同时通过移位运算,使得运算过程更适用于硬件,提高了神经网络的运算效率。
在一个实例中,当网络结构信息包括神经网络层对应的权重修剪阈值时,步骤204包括:根据网络结构信息获取当前网络权重所在的神经网络层对应的目标权重修剪阈值;当当前网络权重的绝对值小于目标权重修剪阈值时,则将当前网络权重转换为0;当所述当前网络权重的绝对值大于或等于目标权重修剪阈值时,则保持当前网络权重的值不变。
具体地,用数组或矩阵表示结构信息,数组或矩阵中的数字依次表示核心神经网络各层权重的修剪阈值T。当执行该结构信息时,将核心神经网络的某层网络权重记为w,该层对应的修剪阈值记为T,如果w的绝对值小于T,则w替换为0,如果w的绝对值大于或等于T,则w不变。从而提高网络权重中0的比例,有利于提高权重的压缩率,其中修剪阈值T 可以自定义。不同的神经网络层可以设置相同或不同的修剪阈值。
本实施例中,通过修剪阈值可以智能的对核心神经网络的神经网络层的网络权重进行修剪,降低运算复杂度。
在一个实施例中,评价指标参数包括性能指标参数和成本指标参数,步骤208包括:获取已训练的核心神经网络对应的运算量、数据传输带宽、网络权重占据的存储空间、网络权重数量、执行时间、执行功耗中的至少一种作为成本指标参数;获取已训练的核心神经网络的输出数据对应的质量评价度作为性能指标参数。
具体地,成本指标参数是体现核心神经网络的运算成本的数据,可以为一种或多种,可为已训练的核心神经网络对应的运算量、数据传输带宽、网络权重占据的存储空间、网络权重数量、执行时间、执行功耗中的至少一种。质量评价度用于体现核心神经网络的性能,性能的衡量方式与网络的具体目标有关。例如,对于提升画质的网络,可将测试图输入网络,计算输出的图片与理想结果的相似度,通常用PSNR来衡量相似度。又比如,人脸检测的网络,可将测试图输入网络,将识别的准确率作为衡量指标,不同的业务场景对应的核心神经网络对应不同的质量评价方式,从而计算质量评价度的方式不同。
本实施例中,通过性能指标参数和成本指标参数共同作为评价指标参数,从而达到性能与成本的平衡。
在一个实施例中,步骤208包括:通过公式lossn=(costn-λ*effectn)-(costn-1-λ*effectn-1)计算得到所述当前结构优化网络的损失函数值,其中所述cost表示成本指标参数,effect表示性能指标参数,n表示结构优化网络的优化次数,n≥1,λ为系数,λ>0。
具体地,cost代表核心神经网络的成本,cost越高表示成本越大;effect代表核心神经网络的性能,effect越高表示性能越好,λ为系数,是权衡成本与性能的比重。结构优化网络的训练目标是降低损失函数值。即,对于(cost-λ*effect),如果第n次的数值低于第(n-1)次,则lossn<0,表明成本与性能的综合表现提升,反向传播后结构优化网络的权重会按照原有的分布演进;如果第n次的数值高于第(n-1)次,则lossn>0,表明成本与性能的综合表现降低,反向传播后结构优化网络的权重会偏离原有的分布。
本实施例中,通过成本指标参数和性能指标参数计算得到结构优化网络的损失函数值,从而使得训练得到的核心神经网络在成本与性能之间达到平衡。
在一个具体的实施例中,提供一种神经网络结构优化方法,待优化的核心神经网络是图片处理网络,用于对图片进行超分辨率处理,使放大后的图片更清晰。其初始结构参考经典的SRCNN网络,如图5所示,其中第一个卷积层的输出通道数为64,第二个卷积层的输出通道数为32,第三个卷积层的输出通道数为1。核心神经网络的性能评估指标为重建图像与原高分辨率图像的PSNR,PSNR越高,表明重建图像与原高分辨率图像越接近,即性能指标参数为PSNR。核心网络的成本指标参数为权重数量,所有卷积层的尺寸均为3x3。将第一个卷积层的输出通道数记为m1,第二个卷积层的输出通道数记为m2,而第三个卷积层的输出通道数由于功能限制,必须为1。则核心神经网络的权重数量为:quantity= 3*3*(m1+m1*m2+m2)。为了优化核心神经网络的成本与性能,设定结构优化网络,对前两个卷积层的输出通道数进行优化。结构优化网络的结构如图6所示,结构优化网络的损失函数定义为:
lossn=(quantityn-λ*PSNRn)-(quantityn-1-λ*PSNRn-1),
此处PSNR为上述核心神经网络的性能指标参数,quantity为上述核心神经网络的权重数量,λ为系数,此处设定为λ=40,n为优化次数。神经网络结构优化过程具体如下:
1、对核心神经网络进行性能测试,记录其初始的PSNR和quantity,对结构优化网络进行随机初始化,然后根据核心神经网络的原始结构,设定m1=64,m2=32,结构优化网络据此算出更新的m1、m2,即m1’、m2’。
2、将更新的m1、m2取绝对值,并近似为整数,然后调整核心神经网络的结构,使其第一个卷积层的输出通道数为m1,第二个卷积层的输出通道数为m2,然后重新训练核心神经网络,反向传播次数设置为10000。
3、核心神经网络训练完成后,再次测试核心神经网络,记录其此时的评价指标参数,即PSNR 和quantity,并结合上一次的PSNR和quantity,计算出损失函数值lossn。根据lossn,对结构优化网络反向传播,计算各神经元的梯度值,更新结构优化网络。
4、将此时的m1、m2作为输入,传进结构优化网络,算出更新的m1、m2,重复上述过程,直至lossn趋于稳定,则优化过程结束,可将此时的核心神经网络的结构作为最终输出。
本实施例中,在核心神经网络之外嵌套了一个结构优化网络,由结构优化网络设定核心神经网络的卷积层的输出通道数,结构优化网络将核心神经网络的性能与成本作为自身的损失函数;两者交替训练,最终迭代出核心神经网络的最佳结构信息。
在一个实施例中,提供了一种神经网络训练方法,包括以下步骤:获取当前参数优化网络输出的网络训练参数信息;根据网络训练参数信息训练核心神经网络的网络参数,得到更新的核心神经网络;获取更新的核心神经网络对应的评价指标参数;根据评价指标参数计算得到当前参数优化网络的损失函数值;基于损失函数值调整当前参数优化网络的网络参数得到更新的参数优化网络,将更新的参数优化网络作为当前参数优化网络,将网络训练参数信息作为当前参数优化网络的输入,返回获取当前参数优化网络输出的网络训练参数信息的步骤;当核心神经网络满足收敛条件时,得到已训练的核心神经网络。
具体地,参数优化网络用于对核心神经网络的训练参数进行优化,训练参数包括神经网络的学习率、网络权重的初始化参数、Adam方法的参数、drop层的概率等。训练参数虽然不影响网络结构,但影响网络的训练过程,优化这些训练参数,有助于提升神经网络的收敛速度和收敛效果,从而提高训练效率和性能。评价指标参数可以为核心神经网络的性能指标参数,在一个实施例中,参数优化网络的损失函数可以表示为lossn=effectn-1-effectn,其中n 表示优化次数,effect表示核心神经网络的性能。
本实施例中,通过参数优化网络输出的网络训练参数信息对核心神经网络的训练参数进行调整,优化后的训练参数,有助于提升神经网络的收敛速度和收敛效果,从而提高训练效率和性能。
可以理解,可以先执行上述实施例中的神经网络结构优化方法,确定核心神经网络的网络结构,再执行上述实施例中的神经网络训练方法通过优化的网络训练参数对核心神经网络进行训练,最终得到已训练的核心神经网络。也可以将上述实施例中的神经网络结构优化方法和神经网络训练方法同步进行,在优化网络结构的同时,优化网络训练参数,最终得到已训练的核心神经网络。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图7为一个实施例的神经网络结构优化装置300的结构框图。如图4所示,一种神经网络结构优化装置300,包括:获取模块302、核心神经网络结构调整模块304、核心神经网络训练模块306、结构优化网络损失计算模块308、结构优化网络调整模块310和网络结构确定模块312。其中:
获取模块302,用于获取当前结构优化网络输出的网络结构信息。
核心神经网络结构调整模块304,用于根据所述网络结构信息调整核心神经网络的网络结构得到更新后的核心神经网络。
核心神经网络训练模块306,用于训练所述更新后的核心神经网络直到达到收敛条件,得到已训练的核心神经网络。
结构优化网络损失计算模块308,用于获取所述已训练的核心神经网络对应的评价指标参数,根据所述评价指标参数计算得到所述当前结构优化网络的损失函数值。
结构优化网络调整模块310,用于基于所述损失函数值调整所述当前结构优化网络的网络参数得到更新的结构优化网络,将所述更新的结构优化网络作为所述当前结构优化网络,将所述网络结构信息作为所述当前结构优化网络的输入,返回所述获取模块302,直至结构优化网络满足收敛条件。
网络结构确定模块312,用于通过满足收敛条件的结构优化网络输出的网络结构信息确定核心神经网络的目标网络结构。
本实施中的神经网络结构优化装置300,通过结构优化网络输出网络结构信息。核心神经网络照此调整网络结构,并进行训练,直至核心神经网络收敛,结构优化网络的损失函数根据核心神经网络的评价指标参数,算出结构优化网络的损失函数值,结构优化网络根据损失函数值,更新结构优化网络,然后输入当前的网络结构信息,又输出新的网络结构信息。重复该过程,直至结构优化网络收敛,则核心神经网络完成优化,在核心神经网络的上层再嵌套一个结构优化网络。该结构优化网络根据核心神经网络的评价指标,优化原核心神经网络的结构信息,在两个网络的交替训练中逐渐将核心神经网络的网络结构趋于最优。可快速高效地迭代出最优的网络结构,达到评价指标的平衡,且优化过程无需监督,节省人力与开发时间。可应用在网络结构调整、网络剪枝、网络量化等不同的方面。
在一个实施例中,网络结构信息包括以下信息中的至少一种:神经网络层数;神经网络层对应的输出通道数;神经网络层对应的权重精度;神经网络层的激活函数的输出精度;神经网络层对应的权重修剪阈值。
本实施中的神经网络结构优化装置300,网络结构信息包括一种或多种类型的结构信息,可从一个或多个方面对网络结构进行调整,可根据需要自定义网络结构信息,提高了网络结构调整的灵活性。
在一个实施例中,核心神经网络结构调整模块304还用于当所述网络结构信息包括神经网络层对应的输出通道数时,根据所述网络结构信息确定所述核心神经网络的各个神经网络层对应的目标输出通道数,以所述目标输出通道数为目标,调整所述核心神经网络中对应的神经网络层的输出通道,将所述核心神经网络中目标输出通道数为0的神经网络层进行删除。
本实施中的神经网络结构优化装置300,按照网络结构信息对核心神经网络的各个神经网络层对应的输出通道进行调整,当目标输出通道数小于或等于0时,将神经网络层进行删除,可智能高效的减少神经网络的运算量。
在一个实施例中,核心神经网络结构调整模块304还用于当所述网络结构信息包括神经网络层对应的权重精度时,根据网络结构信息获取当前网络权重所在的神经网络层对应的第一目标比特数;将当前网络权重转换为第一目标整数值,所述第一目标整数值占用的比特位数为所述第一目标比特数,所述第一目标比特数小于所述当前网络权重的原始占用比特数。
本实施例中,将占用比特数位多的网络权重转换为占用比特数位少的形式表示,降低网络权重的比特数,从而降低神经网络的存储空间及运算量。
在一个实施例中,核心神经网络结构调整模块304还用于当所述网络结构信息包括神经网络层的激活函数的输出精度时,根据网络结构信息获取当前激活函数所在的神经网络层对应的第二目标比特数;将所述当前激活函数的当前输出值转换为第二目标整数值,所述第二目标整数值占用的比特位数为所述第二目标比特数,所述第二目标比特数小于所述当前输出值的原始占用比特数。
本实施中的神经网络结构优化装置300,第二目标比特数小于当前输出值的原始占用比特数,将占用比特数位多的激活函数的输出结果转换为占用比特数位少的形式表示,仅保留中间运算量的高位,降低系统所需的带宽,同时也降低网络的后一层所需的运算量。
在一个实施例中,待转换数据为所述当前网络权重或当前输出值,所述装置还包括:
转换模块,用于当所述待转换数据w的绝对值小于1时,将所述待转换数据w转换为int(w*2n)/2n;当所述待转换数据w的绝对值大于或等于1时,将所述待转换数据w转换为int(w/2n)*2n,其中int()代表截断取整,n表示目标整数值占用的比特数。
本实施例中,实现了数据占用比特数位数降低的同时通过移位运算,使得运算过程更适用于硬件,提高了神经网络的运算效率。
在一个实施例中,核心神经网络结构调整模块304还用于当网络结构信息包括神经网络层对应的权重修剪阈值时,根据网络结构信息获取当前网络权重所在的神经网络层对应的目标权重修剪阈值;当当前网络权重的绝对值小于所述目标权重修剪阈值时,则将当前网络权重转换为0;当当前网络权重的绝对值大于或等于所述目标权重修剪阈值时,则保持当前网络权重的值不变。
本实施例中,通过修剪阈值可以智能的对核心神经网络的神经网络层的网络权重进行修剪,降低运算复杂度。
在一个实施例中,评价指标参数包括性能指标参数和成本指标参数,结构优化网络损失计算模块308还用于获取所述已训练的核心神经网络对应的运算量、数据传输带宽、网络权重占据的存储空间、网络权重数量、执行时间、执行功耗中的至少一种作为所述成本指标参数;获取所述已训练的核心神经网络的输出数据对应的质量评价度作为所述性能指标参数。
本实施例中,通过性能指标参数和成本指标参数共同作为评价指标参数,从而达到性能与成本的平衡。
在一个实施例中,结构优化网络损失计算模块308还用于通过公式lossn=(costn-λ*effectn) -(costn-1-λ*effectn-1)计算得到所述当前结构优化网络的损失函数值,其中所述cost表示成本指标参数,effect表示性能指标参数,n表示结构优化网络的优化次数,n≥1,λ为系数,λ>0。
本实施例中,通过成本指标参数和性能指标参数计算得到结构优化网络的损失函数值,从而使得训练得到的核心神经网络在成本与性能之间达到平衡。
在一个实施例中,如图8所示,提供了一种神经网络训练装置400,包括:
获取模块402,用于获取当前参数优化网络输出的网络训练参数信息。
核心神经网络训练模块404,用于根据网络训练参数信息训练核心神经网络的网络参数,得到更新的核心神经网络。
参数优化网络损失计算模块406,用于获取更新的核心神经网络对应的评价指标参数,根据评价指标参数计算得到所述当前参数优化网络的损失函数值。
参数优化网络调整模块408,用于基于损失函数值调整当前参数优化网络的网络参数得到更新的参数优化网络,将更新的参数优化网络作为当前参数优化网络,将网络训练参数信息作为当前参数优化网络的输入,返回所述获取模块。
核心神经网络确定模块410,用于当核心神经网络满足收敛条件时,得到已训练的核心神经网络。
本实施例中,通过参数优化网络输出的网络训练参数信息对核心神经网络的训练参数进行调整,优化后的训练参数,有助于提升神经网络的收敛速度和收敛效果,从而提高训练效率和性能。
关于神经网络结构优化装置、神经网络训练装置的具体限定可以参见上文中对于神经网络结构优化方法、神经网络训练方法的限定,在此不再赘述。上述神经网络结构优化装置、神经网络训练装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图9为一个实施例中电子设备的内部结构示意图。如图9所示,该电子设备包括通过系统总线连接的处理器、存储器。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现以上各个实施例所提供的神经网络结构优化方法或神经网络训练方法。内存储器为非易失性存储介质中的操作系统计算机程序提供高速缓存的运行环境。该电子设备可以是手机、服务器等。
本申请实施例中提供的神经网络结构优化装置、神经网络训练装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在终端或服务器的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述的神经网络结构优化方法或神经网络训练方法。
本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行本申请实施例中所描述的神经网络结构优化方法或神经网络训练方法。
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请实施例中所描述的神经网络结构优化方法或神经网络训练方法。
本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程 ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线 (Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态 RAM(RDRAM)。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种神经网络结构优化方法,其特征在于,包括:
获取当前结构优化网络输出的网络结构信息;
当所述网络结构信息包括神经网络层对应的权重精度时,根据网络结构信息获取当前网络权重所在的神经网络层对应的第一目标比特数,将所述当前网络权重转换为第一目标整数值,得到更新后的核心神经网络;所述第一目标整数值占用的比特位数为所述第一目标比特数,所述第一目标比特数小于所述当前网络权重的原始占用比特数;
训练所述更新后的核心神经网络直到达到收敛条件,得到已训练的核心神经网络;
获取所述已训练的核心神经网络对应的评价指标参数;所述评价指标参数包括性能指标参数和成本指标参数;所述成本指标参数包括运算量和网络权重占据的存储空间;
通过公式lossn=(costn-λ*effectn)-(costn-1-λ*effectn-1)计算得到所述当前结构优化网络的损失函数值,其中所述cost表示成本指标参数,effect表示性能指标参数,n表示结构优化网络的优化次数,n≥1,λ为系数,λ>0;
基于所述损失函数值调整所述当前结构优化网络的网络参数得到更新的结构优化网络,将所述更新的结构优化网络作为所述当前结构优化网络,将所述网络结构信息作为所述当前结构优化网络的输入,返回所述获取当前结构优化网络输出的网络结构信息的步骤,直至结构优化网络满足收敛条件;
通过满足收敛条件的结构优化网络输出的网络结构信息确定核心神经网络的目标网络结构。
2.根据权利要求1所述的方法,其特征在于,所述网络结构信息还包括以下信息中的至少一种:
神经网络层数;
神经网络层对应的输出通道数;
神经网络层的激活函数的输出精度;
神经网络层对应的权重修剪阈值。
3.根据权利要求2所述的方法,其特征在于,当所述网络结构信息包括神经网络层对应的输出通道数时,所述方法还包括:
根据所述网络结构信息确定所述核心神经网络的各个神经网络层对应的目标输出通道数;
以所述目标输出通道数为目标,调整所述核心神经网络中对应的神经网络层的输出通道;
将所述核心神经网络中目标输出通道数小于或等于0的神经网络层进行删除。
4.根据权利要求2所述的方法,其特征在于,当所述网络结构信息包括神经网络层的激活函数的输出精度时,所述方法还包括:
根据网络结构信息获取当前激活函数所在的神经网络层对应的第二目标比特数;
将所述当前激活函数的当前输出值转换为第二目标整数值,所述第二目标整数值占用的比特位数为所述第二目标比特数,所述第二目标比特数小于所述当前输出值的原始占用比特数。
5.根据权利要求4所述的方法,其特征在于,待转换数据为所述当前网络权重或当前输出值,将所述待转换数据转换为对应的目标整数值包括以下步骤:
当所述待转换数据w的绝对值小于1时,将所述待转换数据w转换为int(w*2n)/2n
当所述待转换数据w的绝对值大于或等于1时,将所述待转换数据w转换为int(w/2n)*2n,其中int()代表截断取整,n表示目标整数值占用的比特数,2n用移位运算实现。
6.根据权利要求2所述的方法,其特征在于,当所述网络结构信息包括神经网络层对应的权重修剪阈值时,所述方法还包括:
根据网络结构信息获取当前网络权重所在的神经网络层对应的目标权重修剪阈值;
当所述当前网络权重的绝对值小于所述目标权重修剪阈值时,则将所述当前网络权重转换为0;
当所述当前网络权重的绝对值大于或等于所述目标权重修剪阈值时,则保持所述当前网络权重的值不变。
7.根据权利要求2所述的方法,其特征在于,所述获取所述已训练的核心神经网络对应的评价指标参数还包括:
获取所述已训练的核心神经网络对应的数据传输带宽、网络权重数量、执行时间、执行功耗中的至少一种作为所述成本指标参数;
获取所述已训练的核心神经网络的输出数据对应的质量评价度作为所述性能指标参数。
8.一种神经网络结构优化装置,其特征在于,包括:
获取模块,用于获取当前结构优化网络输出的网络结构信息;
核心神经网络结构调整模块,用于当所述网络结构信息包括神经网络层对应的权重精度时,根据网络结构信息获取当前网络权重所在的神经网络层对应的第一目标比特数,将所述当前网络权重转换为第一目标整数值,得到更新后的核心神经网络;所述第一目标整数值占用的比特位数为所述第一目标比特数,所述第一目标比特数小于所述当前网络权重的原始占用比特数;
核心神经网络训练模块,用于训练所述更新后的核心神经网络直到达到收敛条件,得到已训练的核心神经网络;
结构优化网络损失计算模块,用于获取所述已训练的核心神经网络对应的评价指标参数,所述评价指标参数包括性能指标参数和成本指标参数;所述成本指标参数包括运算量和网络权重占据的存储空间;通过公式lossn=(costn-λ*effectn)-(costn-1-λ*effectn-1)计算得到所述当前结构优化网络的损失函数值,其中所述cost表示成本指标参数,effect表示性能指标参数,n表示结构优化网络的优化次数,n≥1,λ为系数,λ>0;
结构优化网络调整模块,用于基于所述损失函数值调整所述当前结构优化网络的网络参数得到更新的结构优化网络,将所述更新的结构优化网络作为所述当前结构优化网络,将所述网络结构信息作为所述当前结构优化网络的输入,返回所述获取模块,直至结构优化网络满足收敛条件;
网络结构确定模块,用于通过满足收敛条件的结构优化网络输出的网络结构信息确定核心神经网络的目标网络结构。
9.根据权利要求8所述的装置,其特征在于,所述网络结构信息包括以下信息中的至少一种:
神经网络层数;
神经网络层对应的输出通道数;
神经网络层的激活函数的输出精度;
神经网络层对应的权重修剪阈值。
10.根据权利要求9所述的装置,其特征在于,所述核心神经网络结构调整模块还用于当所述网络结构信息包括神经网络层对应的输出通道数时,根据所述网络结构信息确定所述核心神经网络的各个神经网络层对应的目标输出通道数,以所述目标输出通道数为目标,调整所述核心神经网络中对应的神经网络层的输出通道,将所述核心神经网络中目标输出通道数为0的神经网络层进行删除。
11.一种电子设备,包括存储器以及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述的神经网络结构优化方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的神经网络结构优化方法。
CN202010830807.3A 2020-08-18 2020-08-18 神经网络结构优化方法和装置、电子设备 Active CN112149797B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010830807.3A CN112149797B (zh) 2020-08-18 2020-08-18 神经网络结构优化方法和装置、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010830807.3A CN112149797B (zh) 2020-08-18 2020-08-18 神经网络结构优化方法和装置、电子设备

Publications (2)

Publication Number Publication Date
CN112149797A CN112149797A (zh) 2020-12-29
CN112149797B true CN112149797B (zh) 2023-01-03

Family

ID=73889075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010830807.3A Active CN112149797B (zh) 2020-08-18 2020-08-18 神经网络结构优化方法和装置、电子设备

Country Status (1)

Country Link
CN (1) CN112149797B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112712893B (zh) * 2021-01-04 2023-01-20 众阳健康科技集团有限公司 一种提升计算机临床辅助诊断效果的方法
CN114970851A (zh) * 2021-02-26 2022-08-30 中国科学院深圳先进技术研究院 神经网络的剪枝方法及其剪枝装置、存储介质、设备
CN113344474B (zh) * 2021-08-05 2021-11-23 山东大拇指喷雾设备有限公司 基于神经网络的喷嘴生产线动态管控方法及系统
CN113793653A (zh) * 2021-08-13 2021-12-14 河海大学 一种基于神经网络的高拱坝模型试验相似材料配合比确定方法
CN116578525A (zh) * 2022-01-30 2023-08-11 华为技术有限公司 一种数据处理方法以及相关设备
CN115311506B (zh) * 2022-10-11 2023-03-28 之江实验室 基于阻变存储器的量化因子优化的图像分类方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107292382A (zh) * 2016-03-30 2017-10-24 中国科学院声学研究所 一种神经网络声学模型激活函数定点量化方法
CN108805265A (zh) * 2018-05-21 2018-11-13 Oppo广东移动通信有限公司 神经网络模型处理方法和装置、图像处理方法、移动终端
CN109635927A (zh) * 2018-12-05 2019-04-16 东软睿驰汽车技术(沈阳)有限公司 一种卷积神经网络训练方法及装置
CN110009101A (zh) * 2019-04-11 2019-07-12 北京字节跳动网络技术有限公司 用于生成量化神经网络的方法和装置
CN110210620A (zh) * 2019-06-04 2019-09-06 北京邮电大学 一种用于深度神经网络的通道剪枝方法
CN110751278A (zh) * 2019-08-28 2020-02-04 云知声智能科技股份有限公司 一种神经网络比特量化方法和系统
CN111160524A (zh) * 2019-12-16 2020-05-15 北京时代民芯科技有限公司 一种两阶段的卷积神经网络模型压缩方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709565A (zh) * 2016-11-16 2017-05-24 广州视源电子科技股份有限公司 一种神经网络的优化方法及装置
CN107967516A (zh) * 2017-10-12 2018-04-27 中科视拓(北京)科技有限公司 一种基于迹范数约束的神经网络的加速与压缩方法
US11928601B2 (en) * 2018-02-09 2024-03-12 Google Llc Neural network compression
US11948074B2 (en) * 2018-05-14 2024-04-02 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
US10832139B2 (en) * 2018-06-22 2020-11-10 Moffett Technologies Co. Limited Neural network acceleration and embedding compression systems and methods with activation sparsification
JP7045947B2 (ja) * 2018-07-05 2022-04-01 株式会社日立製作所 ニューラルネットワークの学習装置および学習方法
CN111492369B (zh) * 2019-09-19 2023-12-12 香港应用科技研究院有限公司 人工神经网络中移位权重的残差量化

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107292382A (zh) * 2016-03-30 2017-10-24 中国科学院声学研究所 一种神经网络声学模型激活函数定点量化方法
CN108805265A (zh) * 2018-05-21 2018-11-13 Oppo广东移动通信有限公司 神经网络模型处理方法和装置、图像处理方法、移动终端
CN109635927A (zh) * 2018-12-05 2019-04-16 东软睿驰汽车技术(沈阳)有限公司 一种卷积神经网络训练方法及装置
CN110009101A (zh) * 2019-04-11 2019-07-12 北京字节跳动网络技术有限公司 用于生成量化神经网络的方法和装置
CN110210620A (zh) * 2019-06-04 2019-09-06 北京邮电大学 一种用于深度神经网络的通道剪枝方法
CN110751278A (zh) * 2019-08-28 2020-02-04 云知声智能科技股份有限公司 一种神经网络比特量化方法和系统
CN111160524A (zh) * 2019-12-16 2020-05-15 北京时代民芯科技有限公司 一种两阶段的卷积神经网络模型压缩方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Deep Neural Network Compression With Single and Multiple Level Quantization;Yuhui Xu等;《Thirty-Second AAAI Conference on Artificial Intelligence》;20180131;第32卷(第1期);1-9 *
Towards Effective Low-Bitwidth Convolutional Neural Networks;Bohan Zhuang等;《Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)》;20171117;7920-7928 *
基于整系数表达的卷积神经网络权值压缩方法研究;孟凯;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20200615(第(2020)06期);I140-94 *
深度神经网络架构优化与设计;张选杨;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20200115(第(2020)01期);I140-260 *

Also Published As

Publication number Publication date
CN112149797A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN112149797B (zh) 神经网络结构优化方法和装置、电子设备
CN109034378B (zh) 神经网络的网络表示生成方法、装置、存储介质和设备
US20150254554A1 (en) Information processing device and learning method
CN113132723B (zh) 一种图像压缩方法及装置
CN112418482B (zh) 一种基于时间序列聚类的云计算能耗预测方法
CN112508125A (zh) 一种图像检测模型的高效全整数量化方法
CN111461445B (zh) 短期风速预测方法、装置、计算机设备及存储介质
CN114698395A (zh) 神经网络模型的量化方法和装置、数据处理的方法和装置
KR20220075407A (ko) 뉴럴 네트워크 표현 형식
CN111652664A (zh) 训练混合元学习网络的装置和方法
EP3270376B1 (en) Sound signal linear predictive coding
CN116188878A (zh) 基于神经网络结构微调的图像分类方法、装置和存储介质
CN114528987A (zh) 一种神经网络边缘-云协同计算分割部署方法
CN112446461A (zh) 一种神经网络模型训练方法及装置
CN116842447A (zh) 分类数据的后处理方法、装置、系统和电子装置
CN116634162A (zh) 率失真优化的图像压缩神经网络训练后量化方法
Watanabe Learning efficiency of redundant neural networks in Bayesian estimation
CN112561050B (zh) 一种神经网络模型训练方法及装置
CN116644783A (zh) 模型训练方法、对象处理方法及装置、电子设备、介质
CN115496181A (zh) 深度学习模型的芯片适配方法、装置、芯片及介质
CN113449863A (zh) 一种基于查表的神经网络量化方法
CN113902114A (zh) 神经网络模型的量化方法、装置和系统、电子设备和存储介质
CN115705486A (zh) 量化模型的训练方法、装置、电子设备和可读存储介质
KR20220092776A (ko) 신경망 모델 양자화 장치 및 방법
CN113626646A (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