掌桥专利:专业的专利平台
掌桥专利
首页

一种神经网络确定方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 16:06:26



技术领域

本公开涉及人工智能技术领域,具体涉及图像处理、计算机视觉和深度学习等技术领。

背景技术

现有技术中,在神经网络结构设计的过程中,依据技术人员的经验进行神经网络结构的设计,需要技术人员具备大量的神经网络结构设计及参数调整经验,在初次设计神经网络结构后,需要在指定数据集上进行充分地训练和测试以评价该神经网络结构的性能;然后不断人工替换神经网络结构后在指定数据集上再次进行充分地训练和测试。

通过对大量的新网络结构进行训练、测试及评价,最终选出性能较佳的神经网络结构,多次更换、实验不同结构的神经网络需要耗费大量的硬件资源。

发明内容

本公开提供了一种神经网络确定方法、装置、电子设备及存储介质。

根据本公开的一方面,提供了一种神经网络确定方法,包括:

获取初始神经网络及预设搜索空间,其中,所述预设搜索空间中包括多个网络子结构;

基于所述初始神经网络,利用所述预设搜索空间中的各网络子结构通过网络子结构替换的方式得到多个待测试神经网络;

利用样本图像数据组或样本音频数据组,分别计算各所述待测试神经网络的损失,其中,所述样本图像数据组包括第一样本图像数据及第二样本图像数据,所述样本音频数据组包括第一样本语音数据及第二样本语音数据;

选取损失最小的待测试神经网络作为目标神经网络。

根据本公开的另一方面,提供了一种神经网络确定装置,包括:

网络获取模块,用于获取初始神经网络及预设搜索空间,其中,所述预设搜索空间中包括多个网络子结构;

结构替换模块,用于基于所述初始神经网络,利用所述预设搜索空间中的各网络子结构通过网络子结构替换的方式得到多个待测试神经网络;

损失计算模块,用于利用样本图像数据组或样本音频数据组,分别计算各所述待测试神经网络的损失,其中,所述样本图像数据组包括第一样本图像数据及第二样本图像数据,所述样本音频数据组包括第一样本语音数据及第二样本语音数据;

网络选取模块,用于选取损失最小的待测试神经网络作为目标神经网络。

本公开提供的神经网络确定方法,首先获取初始神经网络及包括多个网络子结构的预设搜索空间;然后基于初始神经网络,利用预设搜索空间中的各网络子结构通过网络子结构替换的方式得到多个待测试神经网络;再利用样本图像数据组或样本音频数据组,分别计算各待测试神经网络的损失;选取损失最小的待测试神经网络作为目标神经网络。本公开实现了神经网络结构的自动确定,节约了硬件资源。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1为本公开提供的一种神经网络确定方法的流程示意图;

图2为本公开提供的步骤S12的一种可能的实施方式;

图3为本公开提供的步骤S21的一种可能的实施方式;

图4为本公开提供的步骤S13的一种可能的实施方式;

图5为本公开提供的步骤S42的一种可能的实施方式;

图6为本公开提供的一种神经网络确定装置的结构示意图;

图7是用来实现本公开实施例的神经网络确定方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

神经网络大多具有多种类型的多个网络层,且其模型体系结构不受空间限制,导致神经网络模型结构的组合非常多,相关技术中,神经网络结构的设计通常依据研发人员根据经验进行设计,并且在初次设计后还需要利用样本数据来验证当前神经网络的准确性,并根据验证结果来反复调节神经网络的结构,人工工作量巨大。

有鉴于此,本公开提供了一种神经网络确定方法,包括:

获取初始神经网络及预设搜索空间,其中,所述预设搜索空间中包括多个网络子结构;

基于所述初始神经网络,利用所述预设搜索空间中的各网络子结构通过网络子结构替换的方式得到多个待测试神经网络;

利用样本图像数据组或样本音频数据组,分别计算各所述待测试神经网络的损失,其中,所述样本图像数据组包括第一样本图像数据及第二样本图像数据,所述样本音频数据组包括第一样本语音数据及第二样本语音数据;

选取损失最小的待测试神经网络作为目标神经网络。

由上可见,本公开提供的神经网络确定方法,基于初始神经网络与预设搜索空间中的各网络子结构进行网络子结构替换,来得到多个待测试神经网络,本公开基于网络子结构替换的方式获取多个待测试神经网络,能够使得获取待测试神经网络的速度提升,进而提高神经网络搜索确定的效率;再计算这些待测试神经网络的损失,最终选取损失最小的神经网络作为目标神经网络,目标神经网络的网络性能较好,实现了神经网络结构的自动确定,能够减少人工工作量。并且利用样本图像数据组或样本音频数据组来计算损失,无需在指定数据集上进行充分地训练和测试以评价该神经网络结构的性能,减少了神经网络结构验证所用的算力,大大节约了硬件资源。

而相关技术中神经网络结构的设计通常采用神经网络架构搜索来实现,神经网络架构搜索是通过搜索候选网络结构并对其进行评估来找到满足需求的网络结构。相关技术中,神经网络架构搜索常采用以下两种方式实现:一是从搜索空间中生成满足硬性条件的新网络结构,然后在指定数据集上进行充分地训练和测试以评价该网络结构的性能。通过对大量的新网络结构进行训练、测试及评价,最终选出性能最佳的网络结构;二则是在指定数据集上先训练一个规模超大的超网络结构,然后从超网络结构中采样子结构和参数继续训练,在同样满足硬性条件的前提下,将子网络训练时所产生的参数更新同步到超网络结构中。

相关技术中的这两种方案存在的对处理计算资源的要求较高、所需的训练时间较长、导致搜索效率较低、以及多以物体识别任务为基础进行网络结构的搜索,导致以此搜索得到的网络结构不一定适用于其他任务即适用性较低等问题,而本公开提供的神经网络确定方法能够避开对大量待测试神经网络进行训练而导致的处理计算资源耗费过多的问题,能够大大减少设备的计算开销,节约设备的算力,节约了硬件资源。此外还能够考虑到神经网络不同尺度的特征。区别于相关技术中搜索得到的神经网络大多仅适用于物体识别任务,本公开所确定的神经网络能够适用于更多的任务,例如,检测等对网络多尺度特征有要求的任务,从而提高了所确定的神经网络的适用性。

下面通过具体实施例对本公开提供的神经网络确定方法进行详细说明。

本公开实施例的方法应用于智能终端,可以通过智能终端实施,在实际使用过程中,该智能终端可以是服务器、数据中心等。

参见图1,图1为本公开提供的第一种神经网络确定方法的流程示意图,包括:

步骤S11:获取初始神经网络及预设搜索空间。

其中,所述预设搜索空间中包括多个网络子结构。

上述获取初始神经网络可以是选取一个具有基本结构的神经网络,例如CNN(Convolutional neural networks,卷积神经网络)、RNN(Recurrent neural networks,循环神经网络)、SVM(Support vector machines,支持向量机)等。一个例子中,初始神经网络的选取可以根据所需的目标神经网络的预期任务来选取,例如,若所需的目标神经网络的预期任务是图像分类,则初始神经网络可以选取适用于图像分类的CNN;若所需的目标神经网络的预期任务是线性数据分类,则初始神经网络可以选取适用于线性数据分类的SVM等。

上述预设搜索空间为一个预先设定的神经网络结构的搜索空间。预设搜索空间中包括预先放置的多个网络子结构,用于降低确定目标神经网络的复杂性。一个例子中,搜索空间中所包括的网络子结构也可以根据所需的目标神经网络的预期任务来确定。

步骤S12:基于所述初始神经网络,利用所述预设搜索空间中的各网络子结构通过网络子结构替换的方式得到多个待测试神经网络。

在预设搜索空间中所包括的多个网络子结构中选取网络子结构,对初始神经网络所包括的网络子结构进行替换,即可得到待测试神经网络。

一个例子中,首先在预设搜索空间中选取网络子结构,与初始神经网络中的网络子结构进行替换,即可得到一个待测试神经网络。然后在预设搜索空间中重新选取网络子结构对该待测试神经网络中的网络子结构进行替换,即可得到第二个待测试神经网络,此后,还可以继续在预设搜索空间中重新选取网络子结构对第一个待测试神经网络和第二个待测试神经网络的网络子结构进行替换,进而得到新的待测试神经网络。

与此同时,也可以继续在预设搜索空间中重新选取网络子结构对未替换网络子结构的初始神经网络中的网络子结构进行替换,即可再得到新的待测试神经网络。以此不断进行网络子结构的替换,即可生成多个待测试神经网络。需要注意的是,所得到的待测试神经网络不能与之前已经得到的待测试神经网络的结构重复。

一个例子中,在预设搜索空间中选取网络子结构,以及在初始神经网络或之前得到的待测试神经网络中选取网络子结构,均可以采取随机选取的方式进行选取,也可以根据预先设定的选取规则进行选取,例如,对各网络子结构基于预先设定的网络子结构评估条件进行排序后按照顺序选取等。具体的,在预设搜索空间中选取网络子结构,以及在初始神经网络或之前得到的待测试神经网络中选取网络子结构,均可以选取一个或多个网络子结构,仅需保证预设搜索空间中选取网络子结构,以及在初始神经网络或之前得到的待测试神经网络中选取网络子结构的数量是相同的。

步骤S13:利用样本图像数据组或样本音频数据组,分别计算各所述待测试神经网络的损失,其中,所述样本图像数据组包括第一样本图像数据及第二样本图像数据,所述样本音频数据组包括第一样本语音数据及第二样本语音数据。

在得到待测试神经网络之后,即对待测试神经网络计算该待测试神经网络的损失,损失可以用于表示该待测试神经网络的网络性能、与预期的网络性能的差距、是否满足预期的任务需求等。具体的,待测试神经网络的损失可以基于该待测试神经网络的输出图像特征或音频特征进行计算。

步骤S14:选取损失最小的神经网络作为目标神经网络。

在对所得到的各待测试神经网络均计算得到各自的损失之后,根据损失对各待测试神经网络进行排序,损失越小,可以表示对应的待测试神经网络越符合需求,网络性能越好等,因此,选取损失最小的待测试神经网络,即可得到最符合需求、网络性能较好的神经网络,即可作为目标神经网络,完成本次神经网络的确定。

一个例子中,本申请实施例中得到的目标神经网络可以用于执行以下功能中的至少一项:语音识别、语音合成、文本翻译、自然语言理解、图像处理、趋势预测、目标检测与跟踪。

由上可见,本公开提供的神经网络确定方法,基于初始神经网络与预设搜索空间中的各网络子结构进行网络子结构替换,来得到多个待测试神经网络,本公开基于网络子结构替换的方式获取多个待测试神经网络,能够使得获取待测试神经网络的速度提升,进而提高神经网络搜索确定的效率;再计算这些待测试神经网络的损失,最终选取损失最小的神经网络作为目标神经网络,目标神经网络的网络性能较好,实现了神经网络结构的自动确定,能够减少人工工作量;并且能够避开对大量待测试神经网络进行训练而导致的计算资源耗费过多的问题,能够大大节约智能终端的硬件算力,还能够考虑到神经网络不同尺度的特征。区别于相关技术中搜索得到的神经网络大多仅适用于物体识别任务,本公开所确定的神经网络能够适用于更多的任务,例如,检测等对网络多尺度特征有要求的任务,从而提高了所确定的神经网络的适用性。

在一种可能的实施方式中,如图2所示,上述步骤S12基于所述初始神经网络,利用所述预设搜索空间中的各网络子结构通过网络子结构替换的方式得到多个待测试神经网络,包括:

步骤S21:将所述初始神经网络存储到预设缓存池中。

预设缓存池为预设的神经网络存储地址,用于存储待测试神经网络。在获取到初始神经网络之后,首先将初始神经网络存储到预设缓存池中。

步骤S22:在所述预设缓存池中选取一个待测试神经网络,在所述预设搜索空间中选取一个网络子结构,利用当前选取的网络子结构替换当前选取的待测试神经网络的子结构,得到当前新生成的待测试神经网络。

其中,所述待测试神经网络包括所述初始神经网络。

当获取初始神经网络之后,尚未生成新的待测试神经网络时,缓存池中仅有初始神经网络这一个待测试神经网络,则选取一个待测试神经网络,对该待测试神经网络的网络子结构与预设搜索空间中选取的网络子结构进行替换,可以是直接对初始神经网络的网络子结构与预设搜索空间中选取的网络子结构进行替换。

当已经得到除了初始神经网络之后的一个或多个待测试神经网络时,再选取一个待测试神经网络,对该待测试神经网络的网络子结构与预设搜索空间中选取的网络子结构进行替换,则可以是在包括初始神经网络以及之前得到的一个或多个待测试神经网络中选取一个神经网络,对该神经网络的网络子结构与预设搜索空间中选取的网络子结构进行替换,进而得到当前新生成的待测试神经网络。

步骤S23:将当前新生成的待测试神经网络添加到所述预设缓存池中。

将当前新生成的待测试神经网络添加到预设缓存池中,也即缓存池中存储有本次确定目标神经网络之后所生成的所有待测试神经网络。

本公开的一个实施例中,在满足预设搜索终止条件前,若所述预设缓存池中待测试神经网络的数量超过所述预设缓存池的存储上限,则在所述预设缓存池中删除损失最高的待测试神经网络。

上述预设搜索终止条件为预先设定的终止条件,表示当满足预设搜索终止条件时,则停止生成新的待测试神经网络。具体的,预设搜索终止条件可以是预先设定的迭代次数、预先设定的所需目标神经网络的损失阈值等,此处不作限定。

在满足预设搜索终止条件之前,本公开实施例会持续生成新的待测试神经网络,但预设缓存池是具有存储上限的,其所能存储的待测试神经网络的数量是一定的。并且,每当生成新的待测试神经网络,该待测试神经网络的损失是实时计算的。因此,当预设缓存池中待测试神经网络的数量超过预设缓存池的存储上限时,则在预设缓存池中删除损失最高的待测试神经网络。

由上可见,本公开提供的神经网络确定方法,将初始神经网络以及替换过网络子结构之后的待测试神经网络均存储在预设缓存池中,再从预设缓存池中继续选取待测试神经网络进行网络子结构替换,从而能够持续生成新的待测试神经网络进行后续的计算,不需要过多计算资源即可不断得到新的待测试的神经网络,减少了所耗费的计算资源,同时提高了获取新的神经网络的效率。本公开的一个实施例中,在满足预设搜索终止条件前,若预设缓存池中待测试神经网络的数量超过预设缓存池的存储上限,则在预设缓存池中删除损失最高的待测试神经网络,从而还能够节省存储资源,同时存储损失更低的神经网络。

在一种可能的实施方式中,如图3所示,上述步骤S21将新生成的待测试神经网络添加到所述预设缓存池中,包括:

步骤S31:判断当前新生成的待测试神经网络是否满足预设网络约束条件。

其中,所述预设网络约束条件根据预设网络数据量及预设网络计算量确定。

步骤S32:若满足则将当前新生成的待测试神经网络添加到所述预设缓存池中。

步骤S33:若不满足则丢弃当前新生成的待测试神经网络。

每当生成新的待测试神经网络时,实时判断当前新生成的待测试神经网络是否满足预设网络约束条件。上述预设网络约束条件表示在计算待测试神经网络的损失之前,对待测试神经网络进行的初步判断,其可以根据预先设定的网络数据量及预先设定的网络计算量等确定,初步判断所生成的待测试神经网络是否符合需求。

缓存池的存储量是有限的,一个例子中,在得到当前新生成的待测试神经网络后,还可以判断该待测试神经网络是否满足预设网络约束条件,例如,在该待测试神经网络的模型大小小于预设大小预设,且该待测试神经网络的计算量等小于预设计算量阈值的情况下,判定满足预设网络约束条件,否则判定不满足预设网络约束条件。

若判断当前新生成的待测试神经网络满足预设网络约束条件,表示该待测试神经网络通过初步的符合需求判断,即可将该待测试神经网络添加到预设缓存池中,进一步计算该待测试神经网络的损失。

若判断当前新生成的待测试神经网络不满足预设网络约束条件,则表示该待测试神经网络没有通过初步的符合需求判断,不符合需求,则不需要将该待测试神经网络添加到预设缓存池中进一步计算损失,而可以直接丢弃,避免计算资源的无效耗费,节省预设缓存池的存储资源。

由上可见,本公开提供的神经网络确定方法,在生成新的待测试神经网络时,就按照预设网络约束条件对神经网络进行判断,对不满足条件的待测试神经网络直接丢弃,使得缓存池中仅存储满足网络约束条件的待测试神经网络,而不需要存储不满足条件的待测试神经网络,即在对神经网络进行后续的计算测试之前,已经对新生成的神经网络做了初步判断,在节省存储资源、计算资源的同时,提高了确定神经网络的效率。

在一种可能的实施方式中,如图4所示,上述步骤S13利用样本图像数据组或样本音频数据组,分别计算各所述待测试神经网络的损失包括:

步骤S41:针对所述预设缓存池中的每一个待测试神经网络,初始化该待测试神经网络的网络参数。

上文提到,只有满足预设网络约束条件的待测试神经网络才能够添加到预设缓存池中进一步计算该待测试神经网络的损失。因此预设缓存池中的每一个待测试神经网络,都需要进行损失的计算。

在针对预设缓存池中的每一个待测试神经网络计算损失时,首先初始化待测试神经网络的网络参数,一个例子中,可以采用服从标准正太分布的随机参数对待测试网络进行初始化。

步骤S42:获取第一样本数据及第二样本数据。

上述样本数据可以为图像数据也可以为语音数据,一个例子中,第一样本数据为第一样本图像数据,则第二样本数据为第二样本图像数据;一个例子中,第一样本数据为第一样本语音数据,则第二样本数据为第二样本语音数据。

第一样本数据及第二样本数据作为待测试神经网络的输入数据可以是随机生成的,一个例子中,第一样本数据及第二样本数据的获取可以是用标准正太分布随机生成的。

步骤S43:将所述第一样本数据输入到该待测试神经网络中得到各预设类型网络层的第一输出结果;将所述第二样本数据输入到该待测试神经网络中得到各预设类型网络层的第二输出结果。

上述第一样本数据为第一样本图像数据时,第一输出结果为第一图像分析结果,而第一样本数据为第一样本语音数据时,第一输出结果为第一语音分析结果;第二样本数据为第二样本图像数据时,第二输出结果为第二图像分析结果,而第二样本数据为第二样本语音数据时,第二输出结果为第二语音分析结果。

步骤S44:根据该待测试神经网络的第一输出结果及第二输出结果计算该待测试神经网络的损失。

上文提到,待测试神经网络中包括多种类型的多个网络层,例如,卷积层、激活层、池化层、全连接层等,在待测试神经网络中选取预设类型的各网络层进行后续的计算,在对待测试神经网络进行网络参数的初始化,并获取到作为输入数据的样本数据后,则先将第一样本数据输入到待测试神经网络中得到各预设类型网络层的第一输出结果,再将第二样本数据输入到待测试神经网络中得到各预设类型网络层的第二输出结果。

此时所得到的第一输出结果和第二输出结果可以反映各预设类型网络层的尺度特征,则根据第一输出结果和第二输出结果来计算待测试神经网络的损失,所得到的损失能够基于待测试神经网络的各预设类型网络层确定待测试神经网络的网络性能。

由上可见,本公开提供的神经网络确定方法,针对缓存池中的每一个待测试神经网络初始化网络参数后,利用样本数据得到各预设类型网络层的输出结果,进而计算该待测试神经网络的损失,所得到的损失能够衡量待测试神经网络多种类型网络层的尺度特征,从而能够更加全面地对待测试神经网络进行评估,使得最终确定的神经网络能够具有更高的适用性。

在一种可能的实施方式中,如图5所示,上述步骤S42获取第一样本数据及第二样本数据包括:

步骤S51:随机生成第一样本数据及第三样本数据。

步骤S52:按照预设权重系数,对所述第一样本数据及所述第三样本数据进行加权得到第二样本数据。

其中,所述第三样本数据的预设权重系数小于所述第一样本数据的预设权重系数。

上述样本数据可以为图像数据也可以为语音数据,一个例子中,第一样本数据为第一样本图像数据,则第三样本数据为第三样本图像数据,第二样本数据为第二样本图像数据;一个例子中,第一样本数据为第一样本语音数据,则第三样本数据为第三样本语音数据,第二样本数据为第二样本语音数据。

上述第一样本数据和第三样本数据为随机生成的数据,具体的,可以是用标准正太分布随机生成的。在得到第一样本数据和第三样本数据之后,则按照预先设定的权重系数,对第一样本数据及第三样本数据进行加权得到第二样本数据,并且第三样本数据的预设权重系数小于第一样本数据的预设权重系数,例如,第一样本数据的预设权重系数为1时,第三样本数据的预设权重系数可以为0.01。

本公开的一个实施例中,所述预设类型网络层包括卷积层、全连接层及批归一化层;

所述根据该待测试神经网络的第一输出结果及第二输出结果计算该待测试神经网络的损失,包括:

按照以下公式,计算该待测试神经网络的损失:

其中,x1表示第一样本数据、x2表示第三样本数据,

由上可见,本公开提供的神经网络确定方法,针对缓存池中的每一个待测试神经网络,利用各待测试神经网络的卷积层、全连接层及归一化层的输出结果,来计算该待测试神经网络的损失,所得到的损失能够衡量待测试神经网络多种类型网络层的尺度特征,从而能够更加全面地对待测试神经网络进行评估,使得最终确定的神经网络能够具有更高的适用性。

在一种可能的实施方式中,本公开实施例的神经网络确定方法,包括:

步骤一,获取初始神经网络及预设搜索空间,其中,预设搜索空间中包括多个网络子结构。

步骤二,将初始神经网络存储到预设缓存池中。

步骤三,在预设缓存池中选取一个待测试神经网络,在预设搜索空间中选取一个网络子结构,利用当前选取的网络子结构替换当前选取的待测试神经网络的子结构,得到当前新生成的待测试神经网络,其中,待测试神经网络包括初始神经网络;将当前新生成的待测试神经网络添加到预设缓存池中。

步骤四,重复执行步骤三,直至预设缓存池中待测试神经网络的数量达到预设数量。

步骤五,针对预设缓存池中的每一个待测试神经网络,初始化该待测试神经网络的网络参数。

步骤六,随机生成第一样本图像数据及第三样本图像数据;按照预设权重系数,对第一样本图像数据及第三样本图像数据进行加权得到第二样本图像数据,其中,第三样本图像数据的预设权重系数小于第一样本图像数据的预设权重系数。

步骤七,将第一样本图像数据输入到该待测试神经网络中得到各预设类型网络层的第一图像分析结果;将第二样本图像数据输入到该待测试神经网络中得到各预设类型网络层的第二图像分析结果。

步骤八,根据该待测试神经网络的第一图像分析结果及第二图像分析结果计算该待测试神经网络的损失。

步骤九,选取损失最小的待测试神经网络作为目标神经网络。

本公开中的目标神经网络通过样本图像数据确定,因此可以有效适用于图像处理的场景,例如,目标神经网络可以用于对图像进行目标检测、目标分类、图像风格转换等。

参见图6,本公开还提供了一种神经网络确定装置的结构示意图,上述装置包括:

网络获取模块601,用于获取初始神经网络及预设搜索空间,其中,所述预设搜索空间中包括多个网络子结构;

结构替换模块602,用于基于所述初始神经网络,利用所述预设搜索空间中的各网络子结构通过网络子结构替换的方式得到多个待测试神经网络;

损失计算模块603,用于利用样本图像数据组或样本音频数据组,分别计算各所述待测试神经网络的损失,其中,所述样本图像数据组包括第一样本图像数据及第二样本图像数据,所述样本音频数据组包括第一样本语音数据及第二样本语音数据;

网络选取模块604,用于选取损失最高的待测试神经网络作为目标神经网络。

由上可见,本公开提供的神经网络确定装置,基于初始神经网络与预设搜索空间中的各网络子结构进行网络子结构替换,来得到多个待测试神经网络,本公开基于网络子结构替换的方式获取多个待测试神经网络,能够使得获取待测试神经网络的速度提升,进而提高神经网络搜索确定的效率;再计算这些待测试神经网络的损失,最终选取损失最高的神经网络作为目标神经网络,能够避开对大量待测试神经网络进行训练而导致的计算资源耗费过多的问题,还能够考虑到神经网络不同尺度的特征。区别于相关技术中搜索得到的神经网络大多仅适用于物体识别任务,本公开所确定的神经网络能够适用于更多的任务,例如,检测等对网络多尺度特征有要求的任务,从而提高了所确定的神经网络的适用性。

本公开的一个实施例中,所述结构替换模块,包括:

网络存储子模块,用于将所述初始神经网络存储到预设缓存池中;

网络生成子模块,用于在所述预设缓存池中选取一个待测试神经网络,在所述预设搜索空间中选取一个网络子结构,利用当前选取的网络子结构替换当前选取的待测试神经网络的子结构,得到当前新生成的待测试神经网络,其中,所述待测试神经网络包括所述初始神经网络;

网络添加子模块,用于将当前新生成的待测试神经网络添加到所述预设缓存池中。

由上可见,本公开提供的神经网络确定装置,将初始神经网络以及替换过网络子结构之后的待测试神经网络均存储在预设缓存池中,再从预设缓存池中继续选取待测试神经网络进行网络子结构替换,从而能够持续生成新的待测试神经网络进行后续的计算,不需要过多计算资源即可不断得到新的待测试的神经网络,减少了所耗费的计算资源,同时提高了获取新的神经网络的效率。本公开的一个实施例中,在满足预设搜索终止条件前,若预设缓存池中待测试神经网络的数量超过预设缓存池的存储上限,则在预设缓存池中删除损失最高的待测试神经网络,从而还能够节省存储资源,同时存储损失更低的神经网络。

本公开的一个实施例中,网络添加子模块,具体用于:

判断当前新生成的待测试神经网络是否满足预设网络约束条件,其中,所述预设网络约束条件根据预设网络数据量及预设网络计算量确定;

若满足则将当前新生成的待测试神经网络添加到所述预设缓存池中;

所述装置还包括:

网络丢弃模块,用于若不满足则丢弃当前新生成的待测试神经网络。

由上可见,本公开提供的神经网络确定装置,在生成新的待测试神经网络时,就按照预设网络约束条件对神经网络进行判断,对不满足条件的待测试神经网络直接丢弃,使得缓存池中仅存储满足网络约束条件的待测试神经网络,而不需要存储不满足条件的待测试神经网络,即在对神经网络进行后续的计算测试之前,已经对新生成的神经网络做了初步判断,在节省存储资源、计算资源的同时,提高了确定神经网络的效率。

本公开的一个实施例中,所述损失计算模块,包括:

第一参数初始化子模块,用于针对所述预设缓存池中的每一个待测试神经网络,初始化该待测试神经网络的网络参数;

第一样本数据获取子模块,用于获取第一样本图像数据及第二样本图像数据;

第一输出结果获得子模块,用于将所述第一样本图像数据输入到该待测试神经网络中得到各预设类型网络层的第一图像分析结果;将所述第二样本图像数据输入到该待测试神经网络中得到各预设类型网络层的第二图像分析结果;

第一损失计算子模块,用于根据该待测试神经网络的第一图像分析结果及第二图像分析结果计算该待测试神经网络的损失。

本公开的一个实施例中,所述损失计算模块,包括:

第二参数初始化子模块,用于针对所述预设缓存池中的每一个待测试神经网络,初始化该待测试神经网络的网络参数;

第二样本数据获取子模块,用于获取第一样本语音数据及第二样本语音数据;

第二输出结果获得子模块,用于将所述第一样本语音数据输入到该待测试神经网络中得到各预设类型网络层的第一语音分析结果;将所述第二样本语音数据输入到该待测试神经网络中得到各预设类型网络层的第二语音分析结果;

第二损失计算子模块,用于根据该待测试神经网络的第一语音分析结果及第二语音分析结果计算该待测试神经网络的损失。

由上可见,本公开提供的神经网络确定装置,针对缓存池中的每一个待测试神经网络初始化网络参数后,利用样本数据得到各预设类型网络层的输出结果,进而计算该待测试神经网络的损失,所得到的损失能够衡量待测试神经网络多种类型网络层的尺度特征,从而能够更加全面地对待测试神经网络进行评估,使得最终确定的神经网络能够具有更高的适用性。

本公开的一个实施例中,所述样本数据获取子模块,具体用于;

随机生成第一样本图像数据及第三样本图像数据;

按照预设权重系数,对所述第一样本图像数据及所述第三样本图像数据进行加权得到第二样本图像数据,其中,所述第三样本图像数据的预设权重系数小于所述第一样本图像数据的预设权重系数。

本公开的一个实施例中,所述预设类型网络层包括卷积层、全连接层及归一化层;

所述损失计算子模块,具体用于:

按照以下公式,计算该待测试神经网络的损失:

其中,x

由上可见,本公开提供的神经网络确定装置,针对缓存池中的每一个待测试神经网络,利用各待测试神经网络的卷积层、全连接层及归一化层的输出结果,来计算该待测试神经网络的损失,所得到的损失能够衡量待测试神经网络多种类型网络层的尺度特征,从而能够更加全面地对待测试神经网络进行评估,使得最终确定的神经网络能够具有更高的适用性。

本公开的一个实施例中,所述装置还包括:

网络删除模块,用于在满足预设搜索终止条件前,若所述预设缓存池中待测试神经网络的数量超过所述预设缓存池的存储上限,则在所述预设缓存池中删除损失最低的待测试神经网络。

本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如神经网络确定方法。例如,在一些实施例中,神经网络确定方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的神经网络确定方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行神经网络确定方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

技术分类

06120114703416