CN108764469A - 一种降低神经网络所需功耗的方法和设备 - Google Patents
一种降低神经网络所需功耗的方法和设备 Download PDFInfo
- Publication number
- CN108764469A CN108764469A CN201810474024.9A CN201810474024A CN108764469A CN 108764469 A CN108764469 A CN 108764469A CN 201810474024 A CN201810474024 A CN 201810474024A CN 108764469 A CN108764469 A CN 108764469A
- Authority
- CN
- China
- Prior art keywords
- frame
- neural network
- subsequence
- key
- output
- 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.)
- Pending
Links
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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- 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
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明实施例提供一种降低神经网络所需功耗的方法和设备。其中,方法包括:对于待输入至神经网络中的特征向量序列的每一帧,若判断获知该帧为关键帧,则将该帧输入至神经网络中,获得神经网络的输出,作为该帧对应的输出;若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出。本发明实施例提供的一种降低神经网络所需功耗的方法和设备,通过跳帧的方式对待输入至神经网络中的特征向量序列进行处理,降低了神经网络对CPU的平均使用率,能大幅度提高计算神经网络的效率并大幅度降低神经网络所需功耗。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种降低神经网络所需功耗的方法和设备。
背景技术
近年来,随着计算机硬件的不断提升以及算法的不断完善,神经网络在模式识别领域,比如语音识别、语音唤醒、人脸识别、机器翻译等领域,取得了重大的突破。神经网络在智能硬件上的应用也得到了越来越多的关注。由于智能硬件的内存和计算能力均有限,神经网络的规模使神经网络对CPU的平均使用率受到了极大的限制,严重影响系统的性能。但是,由于嵌入式系统的计算能力和内存有限,在嵌入式系统中应用神经网络面临着巨大的挑战。因此,如何在尽量保证性能的前提下,进一步降低神经网络对CPU的平均使用率以及占用的内存,成为亟待解决的技术问题。
发明内容
针对现有技术存在占用资源较大的问题,本发明实施例提供一种降低神经网络所需功耗的方法和设备。
根据本发明的第一方面,本发明实施例提供一种降低神经网络所需功耗的方法,包括:
对于待输入至神经网络中的特征向量序列的每一帧,若判断获知该帧为关键帧,则将该帧输入至神经网络中,获得神经网络的输出,作为该帧对应的输出;若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出。
根据本发明的第二方面,本发明实施例提供一种降低神经网络所需功耗的方法,包括:
对于待输入至神经网络中的特征向量序列的每一帧,若判断获知该帧为关键帧,则根据前一关键帧之后的第一个过渡帧获取神经网络的输出,作为该帧对应的输出;若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出。
根据本发明的第三方面,本发明实施例提供一种降低神经网络所需功耗的设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行本发明实施例的降低神经网络所需功耗的方法及其所有可选实施例的方法。
根据本发明的第四方面,本发明实施例提供一种降低神经网络所需功耗的设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行本发明实施例的降低神经网络所需功耗的方法及其所有可选实施例的方法。
本发明实施例提供的一种降低神经网络所需功耗的方法和设备,通过跳帧的方式对待输入至神经网络中的特征向量序列进行处理,仅在部分帧进行神经网络的前向计算,其他帧不进行前向计算,仅复制相应的前向计算结果,降低了神经网络对CPU的平均使用率,能大幅度提高计算神经网络的效率并大幅度降低神经网络所需功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种降低神经网络所需功耗的方法的流程图;
图2为本发明实施例一种降低神经网络所需功耗的方法的流程图;
图3为本发明实施例一种降低神经网络所需功耗的系统的功能框图;
图4为本发明实施例一种降低神经网络所需功耗的设备的结构框图;
图5为本发明实施例一种降低神经网络所需功耗的系统的功能框图;
图6为本发明实施例一种降低神经网络所需功耗的设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种降低神经网络所需功耗的方法包括:对于待输入至神经网络中的特征向量序列的每一帧,若判断获知该帧为关键帧,则将该帧输入至神经网络中,获得神经网络的输出,作为该帧对应的输出;若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出。
需要说明的是,本发明实施例提供的一种降低神经网络所需功耗的方法,适用于训练好的神经网络。数据处理的对象为特征向量序列。
现有技术中,神经网络训练好后,将特征向量序列的每一帧依次输入训练好的神经网络进行前向计算,依次获得每一帧对应的神经网络的输出,即每一特征向量对应的后验概率,从而获得特征向量序列对应的后验概率序列。
具体地,本发明实施例通过跳帧的方式对待输入至神经网络中的特征向量序列进行处理,即并不是对于待输入至神经网络中的特征向量序列的每一帧,都将该帧输入训练好的神经网络进行前向计算,而是仅对于部分帧,将该帧输入训练好的神经网络进行前向计算,获得神经网络输出的后验概率,作为该帧对应的输出,完成对该帧的数据处理;对于其他帧,并不将该帧输入训练好的神经网络,而是将前一帧对应的输出作为该帧对应的输出,完成对该帧的数据处理。
将神经网络输出的后验概率,作为对应的输出的帧,称为关键帧;将前一帧对应的输出作为对应的输出的帧,称为过渡帧。待输入至神经网络中的特征向量序列中,非关键帧即过渡帧。
关键帧对应的神经网络的输出,通过神经网络的前向计算获得;过渡帧对应的神经网络的输出,通过复制前一帧对应的神经网络的输出获得。
神经网络训练好后,依次判断待输入至神经网络中的特征向量序列的每一帧为关键帧或过渡帧。
当判断结果为该帧为关键帧时,将该帧输入神经网络,获取神经网络通过前向计算输出的后验概率,作为该帧对应的输出。
当判断结果为该帧为过渡帧时,将前一帧对应的输出作为该帧对应的输出。由于过渡帧之前必然存在一个最近的关键帧,若该关键帧是该过渡帧的上一帧,则该过渡帧前一帧对应的输出即该关键帧的输出;若该关键帧与该过渡帧之间还有过渡帧,由于该关键帧之后的第一个过渡帧对应的输出为该关键帧的输出,该第一个过渡帧之后的每一过渡帧(包括该过渡帧)都将前一帧对应的输出作为自身的输出,即该关键帧与该过渡帧之间的每一过渡帧对应的输出,与该过渡帧对应的输出相同,均为该帧之前最近的关键帧对应的输出。
图1为本发明实施例一种降低神经网络所需功耗的方法的流程图。如图1所示,一种降低神经网络所需功耗的方法包括:步骤S101、对于待输入至神经网络中的特征向量序列的每一帧,判断该帧是否为关键帧;若是,则执行步骤S102;若否,则执行步骤S103。
步骤S102、将该帧输入至神经网络中,获得神经网络的输出,作为该帧对应的输出。
步骤S103、将该帧之前最近的关键帧对应的输出作为该帧对应的输出。
若判断获知该帧为关键帧,则将该帧输入至神经网络中,获得神经网络的输出,作为该帧对应的输出;若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出。
可以理解的是,本发明实施例提供的一种降低神经网络所需功耗的方法,适用于各种神经网络,如深度神经网络(Deep Neural Network,简称DNN)、卷积神经网络(Convolutional Neural Network,简称DNN)、循环神经网络(也称多层反馈神经网络,Recurrent neural Network,简称RNN)、长短期记忆网络(Long Short-Term Memory,简称LSTM)、小波神经网络,以及混合结构的神经网络。本发明实施例对适用的神经网络的类型不作限定。
由于神经网络的前向计算,特别是结构复杂或规模较大的神经网络的前向计算会使用大量的CPU资源,因此,本发明实施例通过跳帧的方式对待输入至神经网络中的特征向量序列进行处理,仅在部分帧进行神经网络的前向计算,其他帧不进行前向计算,仅复制相应的前向计算结果,降低了神经网络对CPU的平均使用率,能大幅度提高计算神经网络的效率并大幅度降低神经网络所需功耗,尤其适用于计算能力和内存有限的嵌入式系统。
基于上述实施例,作为一个可选实施例,判断该帧为关键帧或过渡帧的具体步骤包括:若该帧为第(nm+a)帧,则该帧确定为关键帧;若该帧不为第(nm+a)帧,则该帧确定为过渡帧;其中,n、a均为预设的参数;n为正整数;0≤a<n;m为非负整数。
优选地,可以根据帧在序列中的位置判断该帧为关键帧或过渡帧。
判断第一帧为关键帧或过渡帧之前,可以根据预先设定的每个子序列包括的帧的数量,将待输入至神经网络中的特征向量序列按顺序分为多个子序列。
每个子序列包括一定数量的帧。每个子序列中包括一个关键帧和若干个过渡帧。若干个指零个、一个或多个。优选地,每个子序列包括的过渡帧为1至5个。
每个子序列包括的帧的数量可以相同,也可以不同。
当每个子序列包括的帧的数量不同时,可以将各子序列的第一帧确定为关键帧,也可以将各子序列的最后一帧确定为关键帧。
当每个子序列包括的帧的数量相同时,将各子序列中相同位置的一帧确定为关键帧。
具体地,若该帧为待输入至神经网络中的特征向量序列的第(nm+a)帧,即该帧为第(m+1)个子序列的第a帧,则将该帧确定为关键帧;若该帧不为第(nm+a)帧,即该帧不为第(m+1)个子序列的第a帧,则将该帧确定为过渡帧。其中,n表示每个子序列包括的帧的数量;a表示该帧在所属的子序列中的位置,即该帧为所属的子序列的第几帧;(m+1)表示该帧所属的子序列为待输入至神经网络中的特征向量序列的第几个子序列。
n的取值范围为2至6,但不限于此。优选地,n=3,即每个子序列包括3个帧。
例如,输入至神经网络中的特征向量序列包括9个帧,每个子序列包括3个帧,关键帧为各子序列的第1帧;当该帧为第1、4或7帧时,将该帧确定为关键帧;当该帧为第2、3、5、6、8或9帧时,将该帧确定为过渡帧。由于每3帧中,仅1帧使用CPU进行前向计算,因此,对CPU的平均使用率仅为原来的三分之一,能将神经网络对CPU的平均使用率降低三分之二。
可以理解的是,也可以不将待输入至神经网络中的特征向量序列按顺序分为多个子序列,而是直接判断该帧是否为第(nm+a)帧,若该帧为第(nm+a)帧,则该帧确定为关键帧;若该帧不为第(nm+a)帧,则该帧确定为过渡帧。
基于上述实施例,作为一个可选实施例,判断该帧为关键帧或过渡帧的具体步骤包括:若判断获知该帧与上一帧之间的相似度大于预设的阈值,则将该帧确定为过渡帧;若判断获知该帧与上一帧之间的相似度小于预设的阈值,则将该帧确定为关键帧。
优选地,可以相邻两帧之间的相似度确定关键帧和过渡帧。
对于每一帧,计算该帧与上一帧之间的相似度,并将该相似度与预设的阈值进行比较。
当该相似度大于预设的阈值时,说明该帧与上一帧非常接近,将该帧输入神经网络获得的后验概率与将上一帧输入神经网络获得的后验概率非常接近,可以将上一帧输入神经网络获得的后验概率作为该帧输入神经网络获得的后验概率,因此,将该帧确定为过渡帧。
当该相似度下于预设的阈值时,说明该帧与上一帧相差较大,将该帧输入神经网络获得的后验概率与将上一帧输入神经网络获得的后验概率相差较大,不能将上一帧输入神经网络获得的后验概率作为该帧输入神经网络获得的后验概率,需要将该帧输入神经网络获得后验概率,因此,将该帧确定为关键帧。
由于待输入至神经网络中的特征向量序列的每一帧均为特征向量,该帧与上一帧之间的相似度可以通过该帧与上一帧之间的欧氏距离、余弦相似度、马氏距离、曼哈顿距离、皮尔逊相关系数等确定,但不限于此。
基于上述实施例,一种降低神经网络所需功耗的方法包括:对于待输入至神经网络中的特征向量序列的每一帧,若判断获知该帧为关键帧,则根据前一关键帧之后的第一个过渡帧获取神经网络的输出,作为该帧对应的输出;若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出。
上述实施例中,对于待输入至神经网络中的特征向量序列的每一帧,计算任务为神经网络完整的前向计算,虽然能大幅度提高计算神经网络的效率并大幅度降低神经网络所需功耗,但不能降低CPU平均使用率的峰值。
具体地,本发明实施例中,对于任一关键帧,关键帧对应的输出不是通过将自身输入训练好的神经网络获得,而是根据之前输入神经网络的前一关键帧之后的第一个过渡帧,获取神经网络输出的后验概率,作为该关键帧的对应的输出。
而对于过渡帧,将该帧之前最近的关键帧对应的输出作为该帧对应的输出,即将该帧前一帧对应的输出作为该帧对应的输出。
图2为本发明实施例一种降低神经网络所需功耗的方法的流程图。如图2所示,一种降低神经网络所需功耗的方法包括:步骤S201、对于待输入至神经网络中的特征向量序列的每一帧,判断该帧是否为关键帧;若是,则执行步骤S202;若否,则执行步骤S203。
步骤S202、根据前一关键帧之后的第一个过渡帧获取神经网络的输出,作为该帧对应的输出。
步骤S203、将该帧之前最近的关键帧对应的输出作为该帧对应的输出。
本发明实施例通过跳帧的方式对待输入至神经网络中的特征向量序列进行处理,仅在部分帧进行神经网络的前向计算,其他帧不进行前向计算,仅复制相应的前向计算结果,降低了神经网络对CPU的平均使用率,能大幅度提高计算神经网络的效率并大幅度降低神经网络所需功耗。
基于上述实施例,判断第一帧为关键帧或过渡帧之前还包括:将待输入至神经网络中的特征向量序列按顺序分为多个子序列,每个子序列包括一定数量的帧。
具体地,判断第一帧为关键帧或过渡帧之前,可以根据预先设定的每个子序列包括的帧的数量,将待输入至神经网络中的特征向量序列按顺序分为多个子序列。
每个子序列包括一定数量的帧。每个子序列中包括一个关键帧和若干个过渡帧。若干个指零个、一个或多个。优选地,每个子序列包括的过渡帧为1至5个。
每个子序列包括的帧的数量可以相同,也可以不同。
优选地,每个子序列包括的帧的数量相同,每个子序列包括3个帧。
相应地,判断该帧为关键帧或过渡帧的具体步骤包括:判断该帧为关键帧或过渡帧的具体步骤包括:若该帧为所属子序列的最后一帧,则将该帧确定为关键帧;若该帧不为所属子序列的最后一帧,则将该帧确定为过渡帧。
对于每一帧,根据该帧在所属子序列中的位置判断该帧为关键帧或过渡帧。
若该帧为所属子序列的最后一帧,则将该帧确定为关键帧。对于该关键帧,前一关键帧为该帧所属子序列的前一子序列的最后一帧,因此,前一关键帧之后的第一个过渡帧,为该帧所属子序列的第一帧。将该帧所属子序列的第一帧输入神经网络后,获得的神经网络输出的后验概率,作为该帧对应的输出。
基于上述实施例,若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出还包括:对于每一子序列,若该帧为该子序列的第一帧,则将该帧输入至神经网络中,并将根据该帧获取神经网络的输出的计算任务按顺序分为多个子任务;子任务的数量与该子序列包括的帧的数量相同。
具体地,对于每一子序列,若过渡帧为该子序列的第一帧,除将该帧之前最近的关键帧对应的输出作为该帧对应的输出外,还将该帧输入至神经网络中,并将根据该帧获取神经网络的输出的计算任务,按顺序分为数量与该子序列包括的帧的数量相同的多个子任务。
优选地,将根据该帧获取神经网络的输出的计算任务,按顺序分为数量与该子序列包括的帧的数量相同的多个子任务时,每一子任务的计算量相同,即将根据该帧获取神经网络的输出的计算任务,按顺序平均分为多个子任务。
例如,子序列包括2个帧,子序列中的第1帧为过渡帧,第2帧为关键帧;确定该子序列中的第1帧为过渡帧后,将该帧输入至神经网络中,并将根据该帧获取神经网络的输出的计算任务,按顺序分为2个子任务。
对于该子序列中的每一过渡帧,根据前一帧对应的子任务的计算结果,获取本帧对应的子任务的计算结果。
将根据该子序列中的第一个过渡帧获取神经网络的输出的计算任务,按顺序分为与该子序列包括的帧的数量相同的多个子任务后,该子序列中的每一过渡帧根据前一帧对应的子任务的计算结果,获取本帧对应的子任务的计算结果。
对于每一过渡帧,对应的子任务为全部子任务中顺序与该过渡帧在所属子序列中的位置相同的子任务。即对于子序列中的第b个过渡帧,该帧对应的组任务为第b个子任务。b为该过渡帧在所属子序列中的位置。
可以理解的是,对于该子序列中的第一个过渡帧,该子序列中不存在该帧的前一帧,直接执行该帧对应的子任务,获取该帧对应的子任务的计算结果。
例如,子序列包括3个帧,子序列中的第1帧和第2帧为过渡帧,第3帧为关键帧;确定该子序列中的第1帧为过渡帧后,将该帧输入至神经网络中,并将根据该帧获取神经网络的输出的计算任务,按顺序分为3个子任务;对于该子序列中的第1帧,直接执行第1个子任务,获取第1个子任务的计算结果;对于该子序列中的第2帧,根据第1个子任务的计算结果,执行第2个子任务,获取第2个子任务的计算结果。
相应地,根据前一关键帧之后的第一个过渡帧获取神经网络的输出,作为该帧对应的输出的具体步骤包括:对于该子序列中的关键帧,根据前一帧对应的子任务的计算结果,获取本帧对应的子任务的计算结果,作为根据该子序列的第一帧获得的神经网络的输出。
具体地,对于每一子序列中的关键帧,根据前一帧对应的子任务的计算结果,即该子序列中的最后一个过渡帧对应的子任务的计算结果,执行该关键帧对应的子任务,获得该关键帧对应的子任务的计算结果。由于根据该子序列的第一帧获取神经网络的输出的全部子任务中,对于该子序列的关键帧,获取的是最后一个子任务的计算结果,当最后一个子任务完成后,根据该子序列的第一帧获取神经网络的输出的全部计算都已完成,因此,最后一个子任务的计算结果,即根据该子序列的第一帧获得的神经网络输出的后验概率,可以将该关键帧对应的子任务的计算结果,作为根据该子序列的第一帧获得的神经网络的输出。
例如,子序列包括3个帧,子序列中的第1帧和第2帧为过渡帧,第3帧为关键帧;关键帧根据第2个子任务的计算结果,执行第3个子任务,获取第3个子任务的计算结果,作为根据该子序列的第1帧获得的神经网络的输出,并将根据该子序列的第1帧获得的神经网络的输出作为关键帧第3帧对应的输出。
也就是说,对于每一子序列,除将该帧之前最近的关键帧对应的输出作为该帧对应的输出外,还将该帧输入至神经网络中,并将根据该帧获取神经网络的输出的计算任务,按顺序分为数量与该子序列包括的帧的数量相同的多个子任务;对于该子序列中的每一帧,根据前一帧对应的子任务的计算结果,获取本帧对应的子任务的计算结果;对于该子序列中的关键帧,将该帧的对应的子任务的计算结果,作为根据该子序列的第一帧获取的神经网络的输出。
对于待输入至神经网络中的特征向量序列的每一帧,计算任务为对应的子任务,仅为神经网络完整的前向计算的一部分,因此,计算时CPU的平均使用率的峰值大大低于神经网络完整的前向计算时CPU的平均使用率的峰值。
本发明实施例通过将获取神经网络的输出的计算任务按顺序分为多个子任务,结合跳帧机制,将神经网络前向计算均分到多个时刻进行计算,从而获得神经网络的输出,作为关键帧对应的输出,降低了处理每一帧时CPU的的峰值使用率,降低了神经网络所需功耗。进一步地,通过结合跳帧机制和神经网络分时计算机制,降低了神经网络对CPU的平均使用率和峰值使用率,更进一步地降低了神经网络所需功耗。
下面通过一个实例说明本发明提供的一种降低神经网络所需功耗的方法的实现过程和应用过程。
在利用深度神经网络(DNN)进行语音唤醒的应用中,将采集的语音信号分成多个语音帧,并提取每一语音帧的特征向量,获得采集的语音信号对应的特征向量序列。
由于语音信号为短时平稳信号,即在短时的10-20毫秒之内可以认为其频谱是稳定的,如果时间片段过长语音信号就缺乏了短时平稳性,再对其进行傅里叶变换分析就失去了意义。因此在特征提取之前需要对原始信号进行分帧和加窗。分帧的过程就是让一段连续的语音分成一段段的时间片段,可以通过加窗来完成,常用的窗函数为汉明窗,窗长一般设置为25ms。另外,为了保证语音信号在频域上的连续性,窗与窗之间需要有一定的交叉,窗移一般设置为10ms。特征提取的目的是去除原始语音的冗余信息,只保留语音信号中具有鉴别性的特征。目前常用的特征有梅尔频率倒谱系数(Mel-Frequency CepstrumCoeficients,MFCC)、fbank特征和感觉加权的线性预测系数特征(Perceptual LinearPrediction,PLP)。优选地,使用fbank特征。
获得采集的语音信号对应的特征向量序列后,基于深度神经网络对上述特征向量序列进行数据处理。
DNN按不同层的位置划分,DNN内部的神经网络层可以分为三类,输入层,隐含层和输出层。一般地,第一层是输入层,最后一层是输出层,而中间的层数都是隐藏层。DNN中,层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。
DNN的计算公式为:
Y0=X
Yi=gi(Wi,i-1Yi-1),for i=1,2,...,N-1
y=YN=gN(WN,N-1YN-1)
其中,X表示输入特征;Wi,i-1示第i-1层和第i层之间的权重;Yi表示第i个隐含层的输出值;y表示神经网络的最终输出;gi∈[1,N-1]表示隐含层的激活函数,一般为sigmod或者tanh函数;gN表示输出层的非线性变换函数,一般为softmax函数,可以将神经网络的输出映射到0到1的值域,表示后验概率。
当采集的语音信号对应的特征向量序列为12帧时,可以通过以下两种方法获得上述特征向量序列中每一特征向量对应的后验概率。
一种方法是:将特征向量序列中的第1、4、7、10帧确定为关键帧,其他帧为过渡帧;对于第1、4、7、10帧,分别将第1、4、7、10帧输入DNN进行前向计算获得后验概率,获得第1、4、7、10帧对应的输出O1、O4、O7、O10;对于第2、3、5、6、8、9、11、12帧,不输入DNN进行前向计算,第2、3、5、6、8、9、11、12帧对应的输出O2、O3、O5、O6、O8、O9、O11、O12分别为O3=O2=O1、O6=O5=O4、O9=O8=O7、O12=O11=O10。
另一种方法是:将特征向量序列分为4个子序列,每个子序列包括3个帧,每个子序列中的第一帧和第二帧为过渡帧,第三帧为关键帧;第4、5、6帧构成第二个子序列,对于第4帧,将第4帧输入DNN,并将DNN根据第4帧进行的前向计算分为3部分:第1个子任务、第2个子任务和第3个子任务;对于第4帧,获得第1个子任务的计算结果,第4帧对应的输出O4等于第3帧对应的输出O3;对于第5帧,根据第1个子任务的计算结果,获得第2个子任务的计算结果,第5帧对应的输出O5=O4=O3;对于第6帧,根据第2个子任务的计算结果,获得第3个子任务的计算结果,从而获得将第4帧输入DNN的前向计算获得后验概率,作为第6帧对应的输出O6;获得特征向量序列其他帧对应的输出的过程与获得第4、5、6帧对应的输出的过程类似。需要注意的是,对于第1、2帧,由于还没有完成一次完成的DNN前向计算,可以将对应的输出设为预设值。
对于每一帧,获得对应的输出后,即获得每一特征向量对应的后验概率后,根据后验概率计算置信度,并根据置信度确定是否唤醒设备。
可以理解的是,本发明提供的一种降低神经网络所需功耗的方法不限于应用于语音唤醒,对于利用神经网络进行模式识别的其他场景,如语音识别、人脸识别、机器翻译等,本发明提供的一种降低神经网络所需功耗的方法和设备都适用。
图3为本发明实施例一种降低神经网络所需功耗的系统的功能框图。基于上述实施例,如图3所示,一种基于神经网络的数据处理系统包括:判断模块301,用于对于待输入至神经网络中的特征向量序列的每一帧,判断该帧为关键帧或过渡帧;计算模块302,用于若判断获知该帧为关键帧,则将该帧输入至神经网络中,获得神经网络的输出,作为该帧对应的输出;复制模块303,若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出。
本发明提供的降低神经网络所需功耗的系统用于执行本发明提供的降低神经网络所需功耗的方法,降低神经网络所需功耗的系统包括的各模块实现相应功能的具体方法和流程详见上述降低神经网络所需功耗的方法和设备的实施例,此处不再赘述。
图4为本发明实施例一种降低神经网络所需功耗的设备的结构框图。基于上述实施例,如图4所示,一种降低神经网络所需功耗的设备包括:处理器(processor)401、存储器(memory)402和总线403;其中,处理器401和存储器402通过总线403完成相互间的通信;处理器401用于调用存储器402中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:判断待输入至神经网络中的特征向量序列的每一帧为关键帧或过渡帧的方法;根据神经网络的前向计算获取关键帧对应的输出的方法;获取过渡帧对应的输出的方法。
本发明另一实施例公开一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:判断待输入至神经网络中的特征向量序列的每一帧为关键帧或过渡帧的方法;根据神经网络的前向计算获取关键帧对应的输出的方法;获取过渡帧对应的输出的方法。
本发明另一实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:判断待输入至神经网络中的特征向量序列的每一帧为关键帧或过渡帧的方法;根据神经网络的前向计算获取关键帧对应的输出的方法;获取过渡帧对应的输出的方法。
以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
图5为本发明实施例一种降低神经网络所需功耗的系统的功能框图。基于上述实施例,如图5所示,一种降低神经网络所需功耗的系统包括:判断模块501,用于对于待输入至神经网络中的特征向量序列的每一帧,判断该帧为关键帧或过渡帧;处理模块502,用于对于待输入至神经网络中的特征向量序列的每一帧,若判断获知该帧为关键帧,则根据前一关键帧之后的第一个过渡帧获取神经网络的输出,作为该帧对应的输出;复制模块503,若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出。
本发明提供的降低神经网络所需功耗的系统用于执行本发明提供的降低神经网络所需功耗的方法,降低神经网络所需功耗的系统包括的各模块实现相应功能的具体方法和流程详见上述降低神经网络所需功耗的方法的实施例,此处不再赘述。
图6为本发明实施例一种降低神经网络所需功耗的设备的结构框图。基于上述实施例,如图6所示,一种降低神经网络所需功耗的设备包括:处理器(processor)601、存储器(memory)602和总线603;其中,处理器601和存储器602通过总线603完成相互间的通信;处理器601用于调用存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:判断待输入至神经网络中的特征向量序列的每一帧为关键帧或过渡帧的方法;根据神经网络的前向计算获取关键帧对应的输出的方法;获取过渡帧对应的输出的方法。
本发明另一实施例公开一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:判断待输入至神经网络中的特征向量序列的每一帧为关键帧或过渡帧的方法;根据神经网络的前向计算获取关键帧对应的输出的方法;获取过渡帧对应的输出的方法。
本发明另一实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:判断待输入至神经网络中的特征向量序列的每一帧为关键帧或过渡帧的方法;根据神经网络的前向计算获取关键帧对应的输出的方法;获取过渡帧对应的输出的方法。
以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行上述各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种降低神经网络所需功耗的方法,其特征在于,包括:
对于待输入至神经网络中的特征向量序列的每一帧,若判断获知该帧为关键帧,则将该帧输入至神经网络中,获得神经网络的输出,作为该帧对应的输出;若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出。
2.根据权利要求1所述的降低神经网络所需功耗的方法,其特征在于,判断该帧为关键帧或过渡帧的具体步骤包括:
若该帧为第(nm+a)帧,则将该帧确定为关键帧;若该帧不为第(nm+a)帧,则将该帧确定为过渡帧;
其中,n、a均为预设的参数;n为正整数;0≤a<n;m为非负整数。
3.根据权利要求1所述的降低神经网络所需功耗的方法,其特征在于,判断该帧为关键帧或过渡帧的具体步骤包括:
若判断获知该帧与上一帧之间的相似度大于预设的阈值,则将该帧确定为过渡帧;若判断获知该帧与上一帧之间的相似度小于预设的阈值,则将该帧确定为关键帧。
4.一种降低神经网络所需功耗的方法,其特征在于,包括:
对于待输入至神经网络中的特征向量序列的每一帧,若判断获知该帧为关键帧,则根据前一关键帧之后的第一个过渡帧获取神经网络的输出,作为该帧对应的输出;若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出。
5.根据权利要求4所述的降低神经网络所需功耗的方法,其特征在于,判断第一帧为关键帧或过渡帧之前还包括:
将待输入至神经网络中的特征向量序列按顺序分为多个子序列,每个子序列包括一定数量的帧;
相应地,判断该帧为关键帧或过渡帧的具体步骤包括:
若该帧为所属子序列的最后一帧,则将该帧确定为关键帧;若该帧不为所属子序列的最后一帧,则将该帧确定为过渡帧。
6.根据权利要求5所述的降低神经网络所需功耗的方法,其特征在于,若判断获知该帧为过渡帧,则将该帧之前最近的关键帧对应的输出作为该帧对应的输出还包括:
对于每一子序列,若该帧为该子序列的第一帧,则将该帧输入至神经网络中,并将根据该帧获取神经网络的输出的计算任务按顺序分为多个子任务;子任务的数量与该子序列包括的帧的数量相同;
对于该子序列中的每一过渡帧,根据前一帧对应的子任务的计算结果,获取本帧对应的子任务的计算结果;
相应地,根据前一关键帧之后的第一个过渡帧获取神经网络的输出,作为该帧对应的输出的具体步骤包括:
对于该子序列中的关键帧,根据前一帧对应的子任务的计算结果,获取本帧对应的子任务的计算结果,作为根据该子序列的第一帧获得的神经网络的输出。
7.一种降低神经网络所需功耗的设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至3任一所述的方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至3任一所述的方法。
9.一种降低神经网络所需功耗的设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求4至6任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求4至6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810474024.9A CN108764469A (zh) | 2018-05-17 | 2018-05-17 | 一种降低神经网络所需功耗的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810474024.9A CN108764469A (zh) | 2018-05-17 | 2018-05-17 | 一种降低神经网络所需功耗的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108764469A true CN108764469A (zh) | 2018-11-06 |
Family
ID=64008545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810474024.9A Pending CN108764469A (zh) | 2018-05-17 | 2018-05-17 | 一种降低神经网络所需功耗的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108764469A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111105803A (zh) * | 2019-12-30 | 2020-05-05 | 苏州思必驰信息科技有限公司 | 快速识别性别的方法及装置、用于识别性别的算法模型的生成方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205482A1 (en) * | 2002-01-24 | 2004-10-14 | International Business Machines Corporation | Method and apparatus for active annotation of multimedia content |
CN101808126A (zh) * | 2010-03-12 | 2010-08-18 | 清华大学 | 一种用于实时视频处理的分布式计算系统和方法 |
CN102196292A (zh) * | 2011-06-24 | 2011-09-21 | 清华大学 | 基于人机交互生成视频深度图序列的方法及系统 |
CN102385865A (zh) * | 2006-07-31 | 2012-03-21 | 高通股份有限公司 | 用于对有效帧进行宽带编码和解码的系统、方法和设备 |
CN103400386A (zh) * | 2013-07-30 | 2013-11-20 | 清华大学深圳研究生院 | 一种用于视频中的交互式图像处理方法 |
CN104040622A (zh) * | 2012-01-12 | 2014-09-10 | 高通股份有限公司 | 用于关键性阈值控制的系统、方法、设备和计算机可读媒体 |
CN104715023A (zh) * | 2015-03-02 | 2015-06-17 | 北京奇艺世纪科技有限公司 | 基于视频内容的商品推荐方法和系统 |
CN105096939A (zh) * | 2015-07-08 | 2015-11-25 | 百度在线网络技术(北京)有限公司 | 语音唤醒方法和装置 |
CN105741838A (zh) * | 2016-01-20 | 2016-07-06 | 百度在线网络技术(北京)有限公司 | 语音唤醒方法及装置 |
US20170124400A1 (en) * | 2015-10-28 | 2017-05-04 | Raanan Y. Yehezkel Rohekar | Automatic video summarization |
CN106663425A (zh) * | 2014-09-23 | 2017-05-10 | 英特尔公司 | 用于自动语音识别的使用外推的跳帧和按需输出的神经网络 |
US20170148223A1 (en) * | 2014-10-31 | 2017-05-25 | Fyusion, Inc. | Real-time mobile device capture and generation of ar/vr content |
-
2018
- 2018-05-17 CN CN201810474024.9A patent/CN108764469A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205482A1 (en) * | 2002-01-24 | 2004-10-14 | International Business Machines Corporation | Method and apparatus for active annotation of multimedia content |
CN102385865A (zh) * | 2006-07-31 | 2012-03-21 | 高通股份有限公司 | 用于对有效帧进行宽带编码和解码的系统、方法和设备 |
CN101808126A (zh) * | 2010-03-12 | 2010-08-18 | 清华大学 | 一种用于实时视频处理的分布式计算系统和方法 |
CN102196292A (zh) * | 2011-06-24 | 2011-09-21 | 清华大学 | 基于人机交互生成视频深度图序列的方法及系统 |
CN104040622A (zh) * | 2012-01-12 | 2014-09-10 | 高通股份有限公司 | 用于关键性阈值控制的系统、方法、设备和计算机可读媒体 |
CN103400386A (zh) * | 2013-07-30 | 2013-11-20 | 清华大学深圳研究生院 | 一种用于视频中的交互式图像处理方法 |
CN106663425A (zh) * | 2014-09-23 | 2017-05-10 | 英特尔公司 | 用于自动语音识别的使用外推的跳帧和按需输出的神经网络 |
US20170148223A1 (en) * | 2014-10-31 | 2017-05-25 | Fyusion, Inc. | Real-time mobile device capture and generation of ar/vr content |
CN104715023A (zh) * | 2015-03-02 | 2015-06-17 | 北京奇艺世纪科技有限公司 | 基于视频内容的商品推荐方法和系统 |
CN105096939A (zh) * | 2015-07-08 | 2015-11-25 | 百度在线网络技术(北京)有限公司 | 语音唤醒方法和装置 |
US20170124400A1 (en) * | 2015-10-28 | 2017-05-04 | Raanan Y. Yehezkel Rohekar | Automatic video summarization |
CN105741838A (zh) * | 2016-01-20 | 2016-07-06 | 百度在线网络技术(北京)有限公司 | 语音唤醒方法及装置 |
Non-Patent Citations (6)
Title |
---|
BUDVYTIS I ET AL: ""Label propagation in complex video sequences using semi-supervised learning"", 《BRITISH MACHINE VISION CONFERENCE, BMVC 2010》 * |
V. BADRINARAYANAN ET AL: ""Label propagation in video sequences"", 《2010 IEEE COMPUTER SOCIETY CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION》 * |
张鸿编著: "《基于人工智能的多媒体数据挖掘和应用实例》", 31 January 2018, 武汉:武汉大学出版社 * |
方娣: ""对行车环境下的街景图像进行语义标记"", 《HTTPS://WWW.DOCIN.COM/P-1568540188.HTML》 * |
王钰: ""基于有机计算的动漫渲染集群系统管理技术的研究与应用"", 《中国优秀硕士学位论文全文数据库·信息科技辑》 * |
阮瑞: ""基于对象的监控视频关键帧提取技术"", 《中国优秀硕士学位论文全文数据库·信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111105803A (zh) * | 2019-12-30 | 2020-05-05 | 苏州思必驰信息科技有限公司 | 快速识别性别的方法及装置、用于识别性别的算法模型的生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | DNNOff: offloading DNN-based intelligent IoT applications in mobile edge computing | |
CN105845128B (zh) | 基于动态剪枝束宽预测的语音识别效率优化方法 | |
CN109948647B (zh) | 一种基于深度残差网络的心电图分类方法及系统 | |
CN113905391B (zh) | 集成学习网络流量预测方法、系统、设备、终端、介质 | |
CN110379416A (zh) | 一种神经网络语言模型训练方法、装置、设备及存储介质 | |
CN110349597B (zh) | 一种语音检测方法及装置 | |
CN106897254B (zh) | 一种网络表示学习方法 | |
CN108876044B (zh) | 一种基于知识增强神经网络的线上内容流行度预测方法 | |
CN113823264A (zh) | 语音识别方法、装置、计算机可读存储介质及计算机设备 | |
CN113570039A (zh) | 一种基于强化学习的优化共识的区块链系统 | |
CN114490065A (zh) | 一种负载预测方法、装置及设备 | |
CN114897144A (zh) | 基于复值神经网络的复值时序信号预测方法 | |
CN109658943A (zh) | 一种音频噪声的检测方法、装置、存储介质和移动终端 | |
CN113935489A (zh) | 基于量子神经网络的变分量子模型tfq-vqa及其两级优化方法 | |
CN109192226A (zh) | 一种信号处理方法及装置 | |
CN115051929A (zh) | 基于自监督目标感知神经网络的网络故障预测方法及装置 | |
CN116090536A (zh) | 神经网络的优化方法、装置、计算机设备及存储介质 | |
CN108764469A (zh) | 一种降低神经网络所需功耗的方法和设备 | |
CN116502680B (zh) | 一种用于混合专家模型的并行训练方法及装置 | |
CN115620147B (zh) | 深度卷积神经网络的可微架构搜索方法及装置 | |
CN113282718B (zh) | 一种基于自适应中心锚的语种识别方法及系统 | |
JP7230324B2 (ja) | ニューラルネットワークの学習方法、コンピュータプログラム及びコンピュータ装置 | |
CN115525927A (zh) | 基于人工智能的科技成果转化数据智能监测方法及系统 | |
CN111061711B (zh) | 一种基于数据处理行为的大数据流卸载方法和装置 | |
CN107437414A (zh) | 基于嵌入式gpu系统的并行化游客识别方法 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200309 Address after: 519000 room 105-58115, No. 6, Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province (centralized office area) Applicant after: Puqiang times (Zhuhai Hengqin) Information Technology Co., Ltd Address before: 100089 Haidian District, Beijing, Yongfeng Road, North Road, South East Road, F, 2 floor. Applicant before: Puqiang Information Technology (Beijing) Co., Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181106 |