HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

一种引擎响应时间的分析方法及电子设备、存储介质与流程

2021-01-28 12:01:42|303|起点商标网
一种引擎响应时间的分析方法及电子设备、存储介质与流程

[0001]
本发明涉及语音唤醒技术,尤其涉及一种引擎响应时间的分析方法及电子设备、存储介质。


背景技术:

[0002]
语音唤醒任务中,衡量语音唤醒效果的指标有四个方面,即唤醒率、误唤醒、响应时间和功耗水平。现有的响应时间评估方法是指从用户说完唤醒词,到设备给出反馈的时间差,也即现有技术中只关注整体的响应时间。随着用户对效果的追求越来越高,引擎内的模型结构不断迭代升级,单一的整体响应时间的评估方法已经无法满足工程化的需求。


技术实现要素:

[0003]
本发明提供一种引擎响应时间的分析方法及电子设备、存储介质,能够分析引擎响应时间的影响因素,以便于后续能够根据影响因素对产品进行优化,加快产品化的节奏。
[0004]
为解决上述技术问题,本发明提供的第一个技术方案为:提供一种引擎响应时间的分析方法,包括:向引擎输入预设语音段,其中,引擎装载有神经网络;获取预设语音段的真实尾端时间点、神经网络判定的预设语音段的预测尾端时间点以及引擎抛出的反馈尾端时间点;计算神经网络判定的预设语音段的预测尾端时间点分别与预设语音段的真实尾端时间点及引擎抛出的反馈尾端时间点的时间差;基于时间差,得出引擎响应时间的影响因素。
[0005]
其中,计算神经网络判定的预设语音段的预测尾端时间点分别与预设语音段的真实尾端时间点及引擎抛出的反馈尾端时间点的时间差包括:计算预设语音段的真实尾端时间点及神经网络判定的预设语音段的预测尾端时间点之间的第一时间差;计算神经网络判定的预设语音段的预测尾端时间点以及引擎抛出的反馈尾端时间点之间的第二时间差。
[0006]
其中,基于时间差,得出引擎响应时间的影响因素包括:基于第一时间差,确定神经网络是否为引擎响应时间的影响因素;基于第二时间差,确定引擎对神经网络的计算时间是否为引擎响应时间的影响因素。
[0007]
其中,方法还包括:根据引擎响应时间的影响因素对神经网络进行优化。
[0008]
其中,根据引擎响应时间的影响因素对神经网络进行优化包括:对神经网络重新训练,并在训练过程中在损失函数上加大预设语音段尾部静音帧的惩罚系数;或者获取多条训练语音段,并标注训练语音段的真实尾端时间点,以及通过初始神经网络预测训练语音段的预测尾端时间点;利用训练语音段的真实尾端时间点、训练语音段的预测尾端时间点以及训练语音段的数量得到新的损失函数;利用新的损失函数对神经网络进行训练。
[0009]
其中,根据引擎响应时间的影响因素对神经网络进行优化包括:在引擎中运行第一神经网络及第二神经网络,获取第一神经网络对应的第一计算量以及第二神经网络对应的第二计算量;计算引擎对第一神经网络的计算时间;及计算引擎对第二神经网络的计算时间;根据第一计算量、第二计算量以及引擎对第一神经网络的计算时间、引擎对第二神经
网络的计算时间对第一神经网络或者第二神经网络进行优化。
[0010]
其中,根据第一计算量、第二计算量以及引擎对第一神经网络的计算时间、引擎对第二神经网络的计算时间对第一神经网络或者第二神经网络进行优化包括:对比第一计算量与第二计算量,以及对比引擎对第一神经网络的计算时间与引擎对第二神经网络的计算时间;若第一计算量大于第二计算量,且引擎对第一神经网络的计算时间大于引擎对第二神经网络的计算时间,则对第一计算量进行优化,以使得优化后的第一计算量与第二计算量的比值等于引擎对第一神经网络的计算时间与引擎对第二神经网络的计算时间的比值;若第一计算量大于第二计算量,且引擎对第一神经网络的计算时间等于或小于引擎对第二神经网络的计算时间,则对第二计算量进行优化,以使得第一计算量与优化后的第二计算量的比值等于引擎对第一神经网络的计算时间与引擎对第二神经网络的计算时间的比值。
[0011]
其中,根据引擎响应时间的影响因素对神经网络进行优化包括:在第一引擎运行第一神经网络,及在第二引擎运行第二神经网络,获取第一引擎及第二引擎的性能差异的比值;计算第一引擎对第一神经网络的计算时间,以及第二引擎对第二神经网络的计算时间;根据第一计算量、第二计算量以及第一引擎对第一神经网络的计算时间、第二引擎对第二神经网络的计算时间、性能差异的比值对第一神经网络或者第二神经网络进行优化。
[0012]
其中,根据第一计算量、第二计算量以及第一引擎对第一神经网络的计算时间、第二引擎对第二神经网络的计算时间、性能差异的比值对第一神经网络或者第二神经网络进行优化包括:对比第二引擎对第二神经网络的计算时间与第二引擎对第二神经网络的预期计算时间;若第二引擎对第二神经网络的计算时间小于预期计算时间,则对第一计算量进行优化,以使得第二引擎对第二神经网络的计算时间等于预期计算时间;若第二引擎对第二神经网络的计算时间大于预期计算时间,则对第二计算量进行优化,以使得第二引擎对第二神经网络的计算时间等于预期计算时间;其中,预期计算时间为第一引擎对第一神经网络的计算时间、第一计算量与第二计算量的比值以及性能差异的比值的乘积。
[0013]
为解决上述技术问题,本发明提供的第二个技术方案为:提供一种电子设备,包括:存储器和处理器,其中,存储器存储有程序指令,处理器从存储器调取程序指令以执行上述任一项的引擎响应时间的分析方法。
[0014]
为解决上述技术问题,本发明提供的第三个技术方案为:提供一种计算机可读存储介质,存储有程序文件,程序文件能够被执行以实现上述任一项的引擎响应时间的分析方法。
[0015]
本发明的有益效果,区别于现有技术,本发明提供的引擎响应时间的分析方法,其通过计算神经网络判定的预设语音段的预测尾端时间点分别与预设语音段的真实尾端时间点及引擎抛出的反馈尾端时间点的时间差,进而确定引擎响应时间的影响因素,以便于后续能够根据影响因素对产品进行优化,加快产品化的节奏。
附图说明
[0016]
图1为本发明引擎响应时间的分析方法的第一实施例的流程示意图;
[0017]
图2为图1中步骤s13及步骤s14的一具体实施例的流程示意图;
[0018]
图3为本发明引擎响应时间的分析方法的第二实施例的流程示意图;
[0019]
图4为图3中步骤s35的第一实施例的流程示意图;
[0020]
图5为图3中步骤s35的第二实施例的流程示意图;
[0021]
图6为图3中步骤s35的第三实施例的流程示意图;
[0022]
图7为本发明电子设备的一实施例的结构示意图;
[0023]
图8为本发明计算机可读存储介质一实施例的结构示意图。
具体实施方式
[0024]
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0025]
以语音唤醒引擎为例,当前语音唤醒引擎中评估响应时间的方法是:针对一批测试集进行人工标注,找到每条音频唤醒语音段的尾端点,使用语音唤醒引擎加载的神经网络模拟实时录音的过程进行测试,得到每条音频抛出唤醒结果的时间点,使用语音唤醒引擎抛出结果的时间点减去人工标注的尾端点,并将此时间差作为响应时间。这种方法主要问题是:该方法只分析整体的响应时间,没有对响应时间的组成部分进行细分,在模型结构不断迭代升级的过程中,无法指导工程人员定位响应时间差异的来源和优化方向,从而屡屡让一些唤醒效果较优的神经网络模型无法上线使用,核心技术迟迟无法在业务侧落地。例如,现有一条十秒时长的音频,其内容为“打开空调”,按照目前的方法,需要先对音频中唤醒语音的尾端点进行标注,假设“调”字在第三秒钟说完,那么人工标注的尾端点就是第三秒,然后使用语音唤醒设备加载不同的神经网络模拟实时录音的过程进行测试,假设使用第一个神经网络时,唤醒设备在第四秒钟抛出了唤醒结果,使用第二个神经网络时,唤醒设备在第五秒钟抛出了唤醒结果,则它们两个的响应时间分别为一秒和两秒。该方法能比较出第二个神经网络比第一个神经网络的响应时间慢一秒,但是无法知道它为什么比第一个神经网络慢,也无法明确它的响应时间优化方向。比如第二个神经网络需要看到更多的音频数据才能确认出唤醒词导致,还是唤醒引擎针对不同神经网络实现出来的性能差异导致。因此,现有方法无法进一步定位出响应时间差异的来源,为了明确后续优化方向,本申请提出一种引擎响应时间的分析方法,具体结合附图和实施例对本发明进行详细的说明。
[0026]
请参见图1,为本发明引擎响应时间的分析方法的第一实施例的流程示意图,具体的,包括:
[0027]
步骤s11:向引擎输入预设语音段。
[0028]
具体的,引擎中装载有神经网络,引擎可以为语音唤醒引擎,还可以为数据交互引擎,本申请以语音唤醒引擎为例进行说明。
[0029]
向语音唤醒引擎输入预设语音段,例如若语音唤醒引擎为电视机,输入的预设语音段可以为“打开电视”。再例如若语音唤醒引擎为空调,输入的预设语音段可以为“打开空调”。再例如若语音唤醒引擎为冰箱,输入的预设语音段可以为“调整温度至6℃”等。
[0030]
步骤s12:获取预设语音段的真实尾端时间点、神经网络判定的预设语音段的预测尾端时间点以及引擎抛出的反馈尾端时间点。
[0031]
具体的,以引擎为语音唤醒引擎为例进行说明,在预设语音段中标注真实尾端时间点,例如,若预设语音段的时长为5s,且预设语音段为“打开空调”,预设语音段的真实尾
端时间点“调”的时间点为4s。例如语音唤醒引擎为空调,语音唤醒引擎获取到预设语音段后,神经网络对预设语音段进行识别,得到神经网络判定的预设语音段的预测尾端时间点,神经网络对预设语音段识别后,语音唤醒引擎会根据识别结果进行反馈,在反馈的同时抛出反馈尾端时间点。
[0032]
步骤s13:计算神经网络判定的预设语音段的预测尾端时间点分别与预设语音段的真实尾端时间点及引擎抛出的反馈尾端时间点的时间差。
[0033]
具体的,请结合图2,步骤s13具体包括:
[0034]
步骤s21:计算预设语音段的真实尾端时间点及神经网络判定的预设语音段的预测尾端时间点之间的第一时间差。
[0035]
具体的,利用预设语音段的真实尾端时间点及神经网络判定的预设语音段的预测尾端时间点计算得到第一时间差。在一具体实施例中,第一时间差为神经网络响应时间。利用神经网络判定的预设语音段的预测尾端时间点减去预设语音段的真实尾端时间点,即可得到神经网络响应时间。
[0036]
步骤s22:计算神经网络判定的预设语音段的预测尾端时间点以及引擎抛出的反馈尾端时间点之间的第二时间差。
[0037]
具体的,利用神经网络判定的预设语音段的预测尾端时间点以及引擎抛出的反馈尾端时间点计算得到第二时间差。在一具体实施例中,第二时间差为引擎对神经网络的计算时间。利用引擎抛出的反馈尾端时间点减去神经网络判定的预设语音段的预测尾端时间点,即可得到引擎对神经网络的计算时间。
[0038]
步骤s14:基于时间差,得出引擎响应时间的影响因素。
[0039]
具体的,请继续参见图2,步骤s14包括:
[0040]
步骤s23:基于第一时间差,确定神经网络是否为引擎响应时间的影响因素。
[0041]
第一时间差为神经网络响应时间,基于第一时间差即可确定神经网络是否为引擎响应时间的影响因素。
[0042]
若神经网络响应时间大于0,表明该神经网络需要获取到比预设语音段更长的音频才能够确认出唤醒词。若神经网络响应时间小于0,表明该神经网络在未看到全部的预设语音段时即可确认出唤醒词,这种情况下神经网络的串扰率会比较高,因此神经网络响应时间的理想值为等于0或大于0但趋近于0。具体的,若神经网络响应时间趋近于0,则表明神经网络判定出来的预设语音段的预测尾端时间点与预设语音段的真实尾端时间点接近。
[0043]
具体的,在一实施例中,可以设定一预设值,判断第一时间差与预设值之间的关系,若第一时间差等于第一预设值(例如神经网络响应时间等于0或大于0但趋近于0),则神经网络不是引擎响应时间的影响因素;若第一时间差不等于第一预设值(例如神经网络响应时间小于0或大于0且不趋近于0),则神经网络是引擎响应时间的影响因素。
[0044]
步骤s24:基于第二时间差,确定引擎对神经网络的计算时间是否为引擎响应时间的影响因素。
[0045]
第二时间差为引擎对神经网络的计算时间,根据引擎对神经网络的计算时间确定引擎对神经网络的计算时间是否为引擎响应时间的影响因素。
[0046]
具体的,利用引擎抛出的反馈尾端时间点减去神经网络判定的预设语音段的预测尾端时间点以得到第二时间差,即引擎对神经网络的计算时间。计算得到的引擎对神经网
络的计算时间越小,则表明引擎对神经网络的计算速度越快,引擎对神经网络的计算时间越大,表示引擎对神经网络的计算速度越慢。
[0047]
引擎对神经网络的计算时间用于衡量引擎针对不同神经网络的计算性能的差异。
[0048]
具体的,可以设定一预设值,在引擎对神经网络的计算时间大于预设值时,即可确定引擎对神经网络的计算时间为引擎响应时间的影响因素。
[0049]
具体的,引擎的整体响应时间等于神经网络响应时间以及引擎对神经网络的计算时间之和,因此可以通过上述方法,分析得出神经网络响应时间为引擎的整体响应时间的影响因素,还是引擎对神经网络的计算时间为引擎的整体响应时间的影响因素。从而可以根据影响因素的确定结果确定优化方向,加速核心技术产品化的节奏。
[0050]
请参见图3,为本发明引擎响应时间的分析方法的第二实施例的流程示意图,具体的,本实施例中步骤s31~步骤s34与上述图1所示的第一实施例中步骤s11~步骤s14相同,区别在于本实施例还包括:
[0051]
步骤s35:根据引擎响应时间的影响因素对神经网络进行优化。
[0052]
具体的,在一实施例中,若神经网络为引擎响应时间的影响因素时,可以对神经网络重新训练,并在训练过程中在损失函数上加大预设语音段尾部静音帧的惩罚系数。具体的,传统的语音唤醒任务是一个帧分类准确率的任务,在神经网络响应时间较大时,一般是由于预设语音段的尾部的静音帧分类不准确,而导致神经网络判定出的预测尾端时间点向后偏移,进而使得神经网络响应时间较大。因此在对神经网络进行优化时,可以对神经网络进行重新训练,并在训练过程中,在损失函数上加大预设语音段尾部静音帧的损失(即加大预设语音段尾部静音帧的惩罚系数),进而使得训练得到的神经网络能够更加准确的检测出预设语音段的尾端点,从而优化神经网络的响应时间。
[0053]
在另一实施例中,若神经网络为引擎响应时间的影响因素时,还可以采用图4所示的方式对神经网络进行优化,具体包括:
[0054]
步骤s41:获取多条训练语音段,并标注训练语音段的真实尾端时间点,以及通过初始神经网络预测训练语音段的预测尾端时间点。
[0055]
具体的,可以引入新的训练集对现有的神经网络进行训练,以优化神经网络。例如,获取多条训练语音段,具体的,可以获取一条语音,然后以帧为单位将语音划分为多条训练语音段,在训练语音段中标注出其真实尾端时间点,并通过初始神经网络预测出训练语音段的预测尾端时间点。
[0056]
步骤s42:利用训练语音段的真实尾端时间点、训练语音段的预测尾端时间点以及训练语音段的数量得到新的损失函数。
[0057]
利用训练语音段的真实尾端时间点、训练语音段的预测尾端时间点以及训练语音段的数量训练得到新的损失函数。具体的,利用如下方式训练得到新的损失函数;
[0058][0059]
其中,l
k
是标注的第k条训练语音段的真实尾端时间点,t
k
是预测得到的第k条训练语音段的预测尾端时间点,n表示语音条目数。
[0060]
步骤s43:利用新的损失函数对神经网络进行训练。
[0061]
利用上述得到的损失函数loss_min_distance对神经网络进行优化,以得到新的神经网络。
[0062]
本实施例的神经网络的优化方式,通过计算尾端点的均方差损失,提高神经网络对预设语音段的尾端时间点的检测准确率,进而缩小神经网络的响应时间。
[0063]
在常用的场景中,同一神经网络往往会部署在不同的引擎中,以引擎为手机设备为例进行说明。例如,同一神经网络分别部署在引擎a及引擎b中,引擎a以及引擎b具有不同的硬件条件,根据本申请的方法可以确定是否需要对不同设备进行计算性能优化。具体的,可以从互联网上或者用其它计算方法,获取引擎a以及引擎b的性能差异的比值,假设引擎a以及引擎b的性能差异比值为λ,那么预期上引擎a以及引擎b的计算响应时间的差异大约为λ。而原有的响应时间的统计方式,由于没有排出神经网络响应时间的影响,因而无法正确的评估出不同硬件平台上响应时间的差异是否符合预期。例如引擎a以及引擎b的性能差异比值为2,引擎a对应的神经网络响应时间为50ms,引擎b对应的神经网络响应时间为50ms,引擎a对神经网络的计算响应时间为50ms,而引擎b对神经网络的计算响应时间为150ms,原有的统计方法会认为引擎a对神经网络的计算响应时间比引擎b对神经网络的计算响应时间快三分之一,不符合硬件性能差异2倍的指标,但实际上引擎a对神经网络的计算响应时间比引擎b对神经网络的计算响应时间快2倍,其符合硬件性能的差异,因此,利用本申请的方法能够准确定位出引擎响应时间的影响因素。
[0064]
在一实施例中,若引擎对神经网络的计算时间为引擎响应时间的影响因素时,可以从两个不同的角度进行优化,例如,在一实施例中,同一引擎中运行有不同的神经网络时,则可以采用图5所示的方式对神经网络进行优化,具体包括:
[0065]
步骤s51:在引擎中运行第一神经网络及第二神经网络,获取第一神经网络对应的第一计算量以及第二神经网络对应的第二计算量。
[0066]
具体的,在同一设备,例如引擎a中运行两个不同的神经网络,例如第一神经网络及第二神经网络,可以根据第一神经网络的结构、参数数量获取第一神经网络对应的第一计算量,根据第二神经网络的结构、参数数量获取第二神经网络对应的第二计算量。需要说明的是,该计算量包括乘法、加法计算次数、访存次数等中的一种或组合。
[0067]
步骤s52:计算引擎对第一神经网络的计算时间;及计算引擎对第二神经网络的计算时间。
[0068]
计算引擎对第一神经网络的计算时间,具体的,利用引擎抛出的反馈尾端点减去第一神经网络判定的预设语音段的预测尾端时间点,进而计算得到引擎对第一神经网络的计算时间。
[0069]
计算引擎对第二神经网络的计算时间,具体的,利用引擎抛出的反馈尾端点减去第二神经网络判定的预设语音段的预测尾端时间点,进而计算得到引擎对第二神经网络的计算时间。
[0070]
步骤s53:根据第一计算量、第二计算量以及引擎对第一神经网络的计算时间、引擎对第二神经网络的计算时间对第一神经网络或者第二神经网络进行优化。
[0071]
具体的,在一实施例中,对比第一计算量与第二计算量,以及对比引擎对第一神经网络的计算时间与引擎对第二神经网络的计算时间。
[0072]
理论上,如果两个神经网络的计算量基本相同时,则两个神经网络在同一引擎中
的计算时间基本保持一致。例如,若第一神经网络的第一计算量比第二神经网络的第二计算量多10%左右时,则引擎对第一神经网络的计算时间也会比引擎对第二神经网络的计算时间多10%左右。即理想状态下,两个神经网络的计算量的比值等于引擎对两个神经网络的计算时间的比值:
[0073][0074]
其中,cra表示引擎对第一神经网络的计算时间、crb表示引擎对第二神经网络的计算时间,ca表示第一计算量,cb表示第二计算量。
[0075]
因此在第一计算量大于第二计算量,且引擎对第一神经网络的计算时间大于引擎对第二神经网络的计算时间时,即当前状态下,两个神经网络的计算量的比值不等于引擎对两个神经网络的计算时间的比值,例如:
[0076][0077]
则可以对第一计算量ca进行优化,以使得优化后的第一计算量ca

与第二计算量cb的比值等于引擎对第一神经网络的计算时间cra与引擎对第二神经网络的计算时间crb的比值,即:
[0078][0079]
其中,cra表示引擎对第一神经网络的计算时间、crb表示引擎对第二神经网络的计算时间,ca

表示优化后的第一计算量,cb表示第二计算量。具体的,例如,第一神经网络的第一计算量比第二神经网络的第二计算量多了10%左右,且引擎对第一神经网络的计算时间比引擎对第二神经网络的计算时间多了50%左右,此时需要对第一神经网络的第一计算量进行优化。
[0080]
在第一计算量大于第二计算量,且引擎对第一神经网络的计算时间小于引擎对第二神经网络的计算时间时,即当前状态下,两个神经网络的计算量的比值不等于引擎对两个神经网络的计算时间的比值,例如:
[0081][0082]
则对第二计算量进行优化,以使得第一计算量ca与优化后的第二计算量cb

的比值等于引擎对第一神经网络的计算时间cra与引擎对第二神经网络的计算时间crb的比值。即:
[0083][0084]
其中,cra表示引擎对第一神经网络的计算时间、crb表示引擎对第二神经网络的计算时间,ca表示第一计算量,cb

表示优化后的第二计算量。具体的,例如,第一神经网络的第一计算量比第二神经网络的第二计算量多了10%左右,且引擎对第一神经网络的计算时间与引擎对第二神经网络的计算时间相同或者引擎对第一神经网络的计算时间比引擎对第二神经网络的计算时间快,此时需要对第二神经网络的第二计算量进行优化。
[0085]
本实施例所示的方法,其能够分析出同一引擎中两个不同神经网络的计算时间的差异来源,判断其是由神经网络响应时间还是引擎对不同的神经网络的计算时间导致,又或者是由两种因素共同导致。并且根据分析得到的影响因素,针对不同的影响因素采用不同的方式进行优化,进而使得引擎响应时间得到优化,进一步提高产品化的节奏。
[0086]
例如,在另一实施例中,不同引擎中运行有不同的神经网络时,则可以采用图6所示的方式对神经网络进行优化,具体包括:
[0087]
步骤s61:在第一引擎运行第一神经网络,及在第二引擎运行第二神经网络,获取第一引擎及第二引擎的性能差异的比值。
[0088]
具体的,若不同的神经网络运行在不同的引擎中时,除了考虑各个神经网络的计算量上的差异之外,还需要考虑不同引擎的性能差异,因此在不同引擎中运行有不同的神经网络时,需要获取第一引擎及第二引擎的性能差异的比值,根据第一引擎及第二引擎的性能差异的比值对神经网络进行优化。
[0089]
步骤s62:计算第一引擎对第一神经网络的计算时间,以及第二引擎对第二神经网络的计算时间。
[0090]
计算第一引擎对第一神经网络的计算时间,具体的,利用第一引擎抛出的反馈尾端点减去第一神经网络判定的预设语音段的预测尾端时间点,进而计算得到第一引擎对第一神经网络的计算时间。
[0091]
计算第二引擎对第二神经网络的计算时间,具体的,利用第二引擎抛出的反馈尾端点减去第二神经网络判定的预设语音段的预测尾端时间点,进而计算得到第二引擎对第二神经网络的计算时间。
[0092]
步骤s63:根据第一计算量、第二计算量以及第一引擎对第一神经网络的计算时间、第二引擎对第二神经网络的计算时间、性能差异的比值对第一神经网络或者第二神经网络进行优化。
[0093]
具体的,根据第一引擎对第一神经网络的计算时间、性能差异的比值以及第一计算量、第二计算量计算得到第二引擎对第二神经网络的预期计算时间,其中,第二引擎对第二神经网络的预期计算时间为第一引擎对第一神经网络的计算时间、第一计算量与第二计算量的比值以及性能差异的比值的乘积。具体的,计算方式如下:
[0094][0095]
其中,cra表示第一引擎对第一神经网络的计算时间、crb

表示第二引擎对第二神经网络的预期计算时间,ca表示第一计算量,cb表示第二计算量,λ表示第一引擎及第二引擎的性能差异的比值。
[0096]
将第二引擎对第二神经网络的计算时间与第二引擎对第二神经网络的预期计算时间进行对比,若第二引擎对第二神经网络的计算时间小于第二引擎对第二神经网络的预期计算时间,则对第一计算量进行优化,以使得第二引擎对第二神经网络的计算时间等于第二引擎对第二神经网络的预期计算时间。若第二引擎对第二神经网络的计算时间大于第二引擎对第二神经网络的预期计算时间,则对第二计算量进行优化,以使得第二引擎对第二神经网络的计算时间等于第二引擎对第二神经网络的预期计算时间。
[0097]
在另一实施例中,还可以根据第二引擎对第二神经网络的计算时间、性能差异的
比值以及第一计算量、第二计算量计算得到第一引擎对第一神经网络的预期计算时间,其中,第一引擎对第一神经网络的预期计算时间为第二引擎对第二神经网络的计算时间、第一计算量与第二计算量的比值以及性能差异的比值的乘积。具体的,计算方式如下:
[0098][0099]
其中,cra

表示第一引擎对第一神经网络的预期计算时间、crb表示第二引擎对第二神经网络的计算时间,ca表示第一计算量,cb表示第二计算量,λ表示第一引擎及第二引擎的性能差异的比值。
[0100]
将第一引擎对第一神经网络的计算时间与第一引擎对第一神经网络的预期计算时间进行对比,若第一引擎对第一神经网络的计算时间小于第一引擎对第一神经网络的预期计算时间,则对第二计算量进行优化,以使得第一引擎对第一神经网络的计算时间等于第一引擎对第一神经网络的预期计算时间。若第一引擎对第一神经网络的计算时间大于第一引擎对第一神经网络的预期计算时间,则对第一计算量进行优化,以使得第一引擎对第一神经网络的计算时间等于第一引擎对第一神经网络的预期计算时间。
[0101]
本申请的引擎响应时间的分析方法,其能够分析出引擎响应时间的具体影响因素,并根据影响因素选择针对性的优化方案对神经网络进行优化,其使得响应时间数据更为透明,不仅关注整体的响应时间,还进一步拆分了它的组成部分,有利于分析不同神经网络的响应时间的差异来源,确定进一步的优化方向,加速核心技术产品化的节奏。
[0102]
进一步地,本申请将唤醒整体响应时间拆分为神经网络响应时间和引擎对神经网络的计算时间,使得响应时间的划分更明确具体;根据细分的响应时间数据,可将响应时间优化方案划分为模型训练方案、工程优化方案或两者结合方案;根据细分的响应时间数据,可分析出不同神经网络的响应时间差异来源和优化方向,使得唤醒效果较优的神经网络能够上线使用,核心技术在业务侧落地。
[0103]
请参见图7,为本发明电子设备的一实施例的结构示意图,具体的,电子设备包括相互连接的存储器102和处理器101。存储器102用于存储实现上述任意一项的引擎响应时间的分析方法的程序指令。
[0104]
处理器101用于执行存储器102存储的程序指令。
[0105]
其中,处理器101还可以称为cpu(central processing unit,中央处理单元)。处理器101可能是一种集成电路芯片,具有信号的处理能力。处理器101还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0106]
存储器102可以为内存条、tf卡等,可以存储电子设备中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,电子设备才有记忆功能,才能保证正常工作。电子设备的存储器按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
[0107]
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0108]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0109]
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0110]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,系统服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。
[0111]
请参阅图8,为本发明计算机可读存储介质的结构示意图。本申请的存储介质存储有能够实现上述所有引擎响应时间的分析方法的程序文件201,其中,该程序文件201可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储装置包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
[0112]
以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips