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

一种神经网络处理方法以及相关设备

文献发布时间:2023-06-19 09:36:59


一种神经网络处理方法以及相关设备

技术领域

本申请涉及人工智能领域,尤其涉及一种神经网络处理方法以及相关设备。

背景技术

人工智能(Artificial Intelligence,AI)是通过数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。

在技术层面上,智能机器是通过神经网络来实现上述自然语言处理、计算机视觉、决策与推理或人机交互等领域的功能的,具体的,需要通过不同类型的神经网络来实现不同领域的不同功能。

随着人工智能技术的不断发展,越来越多的智能化功能需要借助神经网络来实现,因此,一种神经网络的定制化方案亟待推出。

发明内容

本申请实施例提供了一种神经网络处理方法以及相关设备,用于根据客户端发送的神经网络的功能指标和性能指标,向客户端发送N个第二神经网络,每个第二神经网络均同时满足前述功能指标和性能指标的要求,以实现神经网络的定制化。

为解决上述技术问题,本申请实施例提供以下技术方案:

第一方面,本申请实施例提供一种神经网络处理方法,可用于人工智能领域的神经网络定制化领域中,服务器接收客户端发送的定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,可选地,通用能力包括文本翻译、文本的分析、语音识别、图像识别、图像分类、图像风格迁移或图像超分辨率重建中的一种或者多种的组合,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种指标或多种指标的组合;进而可以神经网络的功能指标和性能指标为目标,从多个第一神经网络中选取N个第二神经网络,其中,N为正整数,多个第一神经网络为服务器根据功能指标和性能指标生成的,每个第一神经网络的功能均满足功能指标的要求,但不一定满足性能指标的要求,每个第二神经网络的性能均满足性能指标的要求,具体的,在一种情况下,可以为服务器每生成一个第三神经网络,就执行一次第二神经网络选取操作,第三神经网络为多个第一神经网络中的一个神经网络,在另一种情况下,可以为服务器在生成多个第一神经网络之后,再执行从多个第一神经网络中选取N个第二神经网络的操作;服务器将N个第二神经网络发送给客户端,其中,每个第二神经网络可以为卷积神经网络、循环神经网络、人工神经网络或生成对抗神经网络。

本实现方式中,服务器接收客户端发送的定制信息,定制信息中包括待生成的神经网络的功能指标和性能指标,服务器可以根据神经网络的功能指标确定待生成的神经网络的类型,也即可以生成多个满足所述功能指标的第一神经网络,进而可以根据神经网络的性能指标,从多个第一神经网络中选取N个第二神经网络,每个第二神经网络均为满足性能指标的神经网络,从而提供了一种神经网络定制化的方案;此外,由于随着人工智能的不断发展,神经网络的运行设备的形态越来越多,本案的性能指标中包括神经元的数量、神经网络的准确率、神经网络占用的内存大小或神经网络的处理时长中的任意一种或多种指标的组合,从而客户端可以根据神经网络的运行设备的具体形态来确定性能指标为上述指标中的哪些指标,从而有利于扩展本方案的应用场景。

在第一方面的一种可能实现方式中,定制信息中还包括神经网络的个数指标,个数指标为N个,服务器以神经网络的性能指标为目标,从多个第一神经网络中选取N个第二神经网络,可以包括:服务器以神经网络的性能指标为目标,从多个第一神经网络中选取最终帕雷托前沿,最终帕雷托前沿中包括M个第二神经网络,每个第二神经网络为所述多个第一神经网络中性能最优的神经网络,其中,M为正整数,M大于或者等于N;服务器从M个第二神经网络选取N个第二神经网络。本实现方式中用户不仅可以定制神经网络的功能和性能,还可以定制想要的神经网络的数量,进一步提高了神经网络的定制化的精度,有利于增强客户粘度。

在第一方面的一种可能实现方式中,方法还可以包括:服务器利用第一循环神经网络,根据多个第一神经单元生成第三神经网络,具体的,可以为服务器利用第一循环神经网络从多个第一神经单元中采样出组建第三神经网络的多个第二神经单元,进而生成第三神经网络,其中,第三神经网络为多个第一神经网络中的一个神经网络,第三神经网络中包括至少一个第二神经单元,至少一个第二神经单元包含于多个第一神经单元;服务器以神经网络的性能指标为目标,从多个第一神经网络中选取最终帕雷托前沿,包括:服务器生成第三神经网络的性能信息,第三神经网络的性能信息与神经网络的性能指标中包括的信息的类型一致;服务器通过对比第三神经网络的性能与当前帕雷托前沿中每个第二神经网络的性能,更新当前帕雷托前沿;服务器根据第三神经网络的性能信息以及反馈函数生成反馈值;服务器根据反馈值梯度更新第一循环神经网络的参数,具体的,若反馈值为正数,则梯度值为正值,若反馈值为负数,则梯度值为负值,若反馈值为零,则梯度值为零。本实现方式中,通过反馈函数来更新第一循环神经网络的参数,也即通过反馈函数控制第一循环神经网络的采样规律,避免了第一循环神经网络随机采样,有利于缩短帕累托前沿的时间。

在第一方面的一种可能实现方式中,在服务器根据多个第一神经单元生成第三神经网络之前,方法还可以包括:服务器获取第四神经网络,第四神经网络中包括多个第一神经单元;服务器对第四神经网络进行初始迭代训练,具体的,服务器可以利用第一循环神经网络从第四神经网络包括的多个第一神经单元中,采样生成一个子神经网络,初始化所述子神经网络的参数,对所述子神经网络进行初始迭代训练,以得到执行过初始迭代训练的子神经网络的参数,其中,执行过初始迭代训练的子神经网络的参数用于初始化第三神经网络的参数;服务器根据多个第一神经单元生成第三神经网络,包括:服务器根据执行过初始迭代训练的第四神经网络中的多个第一神经单元,生成第三神经网络,并根据子神经网络的参数初始化第三神经网络的参数。本实现方式中,先对第四神经网络进行初始迭代训练,然后利用执行过初始迭代训练的第四神经网络用于初始化第三神经网络,会大大缩短每个第三神经网络的训练时长,从而提高了本方案中神经网络定制过程的效率。

在第一方面的一种可能实现方式中,第四神经网络包括多个神经元层,每个神经元层中包括L个第一神经单元,其中,L为正整数,利用第一循环神经网络,根据多个第一神经单元生成第三神经网络,包括:(1)服务器通过第一循环神经网络输出L个数值,每个数值用于代表L个第一神经单元中的一个第一神经单元的权重;(2)服务器通过归一化指数函数将L个数值转换为L个概率值,L个概率值分别与L个第一神经单元对应,其中,归一化指数函数中的温度参数按照余弦函数的规律进行变化;(3)服务器根据L个概率值,从L个第一神经单元选取一个第二神经单元来实现第三神经网络中的一个神经元层的功能;服务器可以重复执行(1)、(2)和(3)直至从第四神经网络的H个神经元层的所有神经元层中各选取一个第二神经单元来生成第三神经网络。本实现方式中,提供了生成第三神经网络的具体实现过程,提高了本方案的可实现性;此外,由于归一化指数函数中的温度参数T越大,第一循环神经网络采样到L个第一神经单元中每个第一神经单元的概率会趋于平均,则服务器采样的第三神经网络越随机。而温度参数T越大,服务器会根据第一循环神经网络学习到的策略去生成第三神经网络,而T按照余弦函数的规律进行变化,可以避免第一循环神经网络的参数收敛到一个局部最优值而跳不出来,也即保证了最后的N个第二神经网络是从大量的第一神经网络中选取出来的,而不是从局部的少量第一神经网络中选取出来的,从而保证了N个第二神经网络的性能。

在第一方面的一种可能实现方式中,反馈函数中预先设置有第一性能参数以及第一阈值,第一性能参数为性能指标中除神经网络的准确率之外的任一种指标,服务器根据第三神经网络的性能信息以及反馈函数生成反馈值,包括:服务器根据第三神经网络的准确率、第三神经网络的第二性能参数以及反馈函数生成反馈值,其中,在第二性能参数与第一性能参数的差值小于第一阈值的情况下,反馈值为正数,第三神经网络的准确率与反馈值之间的关系为正相关,第二性能参数与第一性能参数的差值与反馈值之间的关系为负相关,在第二性能参数与第一性能参数的差值大于第一阈值的情况下,反馈值的取值为零或负数;服务器根据第三神经网络的性能信息以及反馈函数生成反馈值之后,方法还包括:服务器增大第一性能参数。

在第一方面的一种可能实现方式中,服务器根据第三神经网络的性能信息以及反馈函数生成反馈值,包括:服务器将第三神经网络的性能与当前帕雷托前沿中的至少一个第二神经网络的性能进行对比;在第三神经网络的性能优于当前帕雷托前沿中的P个第二神经网络的情况下,服务器根据P以及反馈函数生成反馈值,其中,P为正整数,反馈值为正数,P越大,反馈值越大;在第三神经网络的性能劣于当前帕雷托前沿中的Q个第二神经网络的情况下,服务器根据Q以及反馈函数生成反馈值,其中,Q为正整数,反馈值为负数,Q越大,反馈值越小。本实现方式中,当通过第一循环神经网络采样到的第三神经网络劣于当前帕雷托前沿上的第二神经网络结构,就给一个负的反馈值,使第一循环神经网络去采样跟当前第三神经网络远离的下一个新第三神经网络。从而引导服务器从一个性能差的帕雷托前沿演化到一个性能优良的帕雷托前沿。

在第一方面的一种可能实现方式中,方法还可以包括:服务器接收客户端发送的神经网络选择信息,其中,神经网络选择信息中可以携带至少一个第五神经网络中每个第五神经网络的标识信息,也可以携带有每个第五神经网络对应的函数;从而服务器可以根据神经网络选择信息从N个第二神经网络中选取至少一个第五神经网络,之后对每个第五神经网络进行迭代训练,直至满足损失函数的收敛条件,将完成迭代训练操作的至少一个第五神经网络发送给客户端。本实现方式中,服务器在将N个第二神经网络发送给客户端之后,客户端可以从N个第二神经网络中选择至少一个第五神经网络,进而服务器对客户端选择的至少一个第五神经网络进行迭代训练之后,再将完成迭代训练操作的至少一个第五神经网络发送给客户端,使得服务器执行迭代训练操作更有针对性,避免计算机资源的浪费。

在第一方面的一种可能实现方式中,方法还包括:服务器接收客户端发送的数据集合,数据集合中的数据类型与功能指标具有关联关系,数据集合中数据的类型可以为文本、语音、图像、低质量图像和高清图像组成的成对图像等,数据集合用于供服务器对神经网络执行迭代训练操作,具体的,服务器可以利用所述数据集合对第四神经网络进行初始迭代训练,和/或,服务器利用所述数据集合对每个第五神经网络进行迭代训练。本实现方式中,相对于由服务器根据神经网络的功能目标自主获取数据集合,由客户端向服务器发送对神经网络进行迭代训练操作时的数据集合,会使得神经网络的迭代训练过程更具有针对性,从而经过迭代训练后的神经网络的准确率更高。

第二方面,本申请实施例提供了一种神经网络处理方法,可用于人工智能领域的神经网络定制化领域中,方法可以包括:服务器接收客户端发送的定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,可选地,功能指标用于供服务器确定神经网络的通用能力,通用能力包括文本翻译、文本的分析、语音识别、图像识别、图像分类、图像风格迁移或图像超分辨率重建中的一种或者多种的组合,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种指标或多种指标的组合;服务器根据功能指标和性能指标生成N个第二神经网络,其中,多个第一神经网络为服务器根据功能指标和性能指标生成的,每个第一神经网络的功能均满足功能指标的要求,N为正整数,每个第二神经网络的性能均满足性能指标的要求,具体的,服务器可以性能指标为目标,对第一循环神经网络进行迭代训练,直至将第一循环神经网络训练称为一个成熟的神经网络,进而直接利用训练成熟的第一循环神经网络,对多个第一神经单元进行采样;进而将N个第二神经网络发送给客户端。

在第二方面的一种可能实现方式中,定制信息中还包括神经网络的个数指标,个数指标为N个。

在第二方面的一种可能实现方式中,方法还包括:服务器接收客户端发送的神经网络选择信息;根据神经网络选择信息从N个第二神经网络中选取至少一个第五神经网络;对每个第五神经网络进行迭代训练,直至满足损失函数的收敛条件;将完成迭代训练操作的至少一个第五神经网络发送给客户端。

在第二方面的一种可能实现方式中,方法还包括:服务器接收客户端发送的数据集合,数据集合中的数据类型与功能指标具有关联关系,数据集合用于供服务器对神经网络执行迭代训练操作。

对于本申请第二方面以及第二方面的各种可能实现方式的具体实现步骤,以及每种可能实现方式所带来的有益效果,均可以参考第一方面中各种可能的实现方式中的描述,此处不再一一赘述。

第三方面,本申请实施例提供了一种神经网络处理方法,可用于人工智能领域的神经网络定制化领域中,方法包括:客户端可以展示定制信息输入界面,则在用户需要定制神经网络时,可以通过客户端输入神经网络的定制信息,进而客户端可以获取到定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,可选地,通用能力包括文本翻译、文本分析、语音识别、图像识别、图像分类、图像风格迁移或图像超分辨率重建中的一种或者多种的组合,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种或多种指标的组合;并向服务器发送定制信息,定制信息用于供服务器根据定制信息获取N个第二神经网络,其中,N为正整数,每个第二神经网络的功能均满足功能指标的要求,每个第二神经网络的性能均满足性能指标的要求,从而可以接收到服务器发送的N个第二神经网络。

在第三方面的一种可能实现方式中,定制信息中还包括神经网络的个数指标,个数指标为N个,神经网络的个数指标用于供服务器确定向客户端发送的第二神经网络的数量。

在第三方面的一种可能实现方式中,方法还包括:客户端在接收到N个第二神经网络之后,可以展示所述N个第二神经网络,进而可以获取到神经网络选择指令,神经网络选择指令用于供客户端从N个第二神经网络中选取至少一个第五神经网络,客户端根据神经网络选择指令生成神经网络选择信息,其中,神经网络选择信息中可以携带至少一个第五神经网络中每个第五神经网络的标识信息,也可以携带有每个第五神经网络对应的函数,用于指示服务器对至少一个第五神经网络中每个第五神经网络进行迭代训练;客户端向服务器发送神经网络选择信息,并接收服务器发送的完成迭代训练操作的至少一个第五神经网络。

在第三方面的一种可能实现方式中,方法还包括:客户端还可以展示有数据集合录入界面,以获取数据集合,具体的,可以为客户端接收数据集合的存储地址,进而从所述存储地址中读取数据集合,也可以为客户端直接接收用户录入的数据集合;进而客户端可以向服务器发送数据集合,数据集合中的数据类型与功能指标具有关联关系,数据集合中数据的类型可以为文本、语音、图像、低质量图像和高清图像组成的成对图像等,用于供服务器对神经网络执行迭代训练操作。

对于本申请第三方面以及第三方面的每种可能实现方式所带来的有益效果,均可以参考第一方面以及第一方面的各种可能的实现方式中的描述,此处不再一一赘述。

第四方面,本申请实施例提供了一种神经网络处理方法,可用于人工智能领域的神经网络定制化领域中,方法可以包括:服务器获取神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,可选地,通用能力包括文本翻译、文本的分析、语音识别、图像识别、图像分类、图像风格迁移或图像超分辨率重建中的一种或者多种的组合,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种或多种指标的组合;服务器利用第一循环神经网络,根据多个第一神经单元生成第一神经网络,第一神经网络的功能满足功能指标的要求,第一神经网络中包括至少一个第二神经单元,至少一个第二神经单元包含于多个第一神经单元;服务器生成第一神经网络的性能信息,第一神经网络的性能信息与待生成神经网络的性能指标中包括的信息的类型一致;服务器通过对比第一神经网络的性能与当前帕雷托前沿中每个第二神经网络的性能,来更新当前帕雷托前沿,其中,每个第二神经网络的性能均满足性能指标的要求;服务器根据第一神经网络的性能信息以及反馈函数生成反馈值;服务器根据反馈值梯度更新第一循环神经网络的参数;服务器重复执行上述第一神经网络生成操作、第一神经网络的性能信息生成操作、当前帕雷托前沿更新操作以及第一循环神经网络参数更新操作,直至产生最终帕雷托前沿。

在第四方面的一种可能实现方式中,服务器根据多个第一神经单元生成第一神经网络之前,方法还包括:服务器获取第四神经网络,第四神经网络中包括多个第一神经单元;服务器对第四神经网络进行初始迭代训练,其中,执行过初始迭代训练的第四神经网络用于初始化第三神经网络;服务器根据多个第一神经单元生成第一神经网络包括:服务器根据执行过初始迭代训练的第四神经网络中的多个第一神经单元,生成第三神经网络。

在第四方面的一种可能实现方式中,第四神经网络包括多个神经元层,每个神经元层中包括L个第一神经单元,其中,L为正整数,服务器利用第一循环神经网络,根据多个第一神经单元生成第一神经网络,包括:服务器通过第一循环神经网络输出L个数值,每个数值用于代表L个第一神经单元中的一个第一神经单元的权重;服务器通过归一化指数函数将L个数值转换为L个概率值,L个概率值分别与L个第一神经单元对应,其中,归一化指数函数中的温度参数按照余弦函数的规律进行变化;服务器根据L个概率值,从L个第一神经单元选取一个第二神经单元来实现第一神经网络中的一个神经元层的功能。

在第四方面的一种可能实现方式中,反馈函数中预先设置有第一性能参数以及第一阈值,第一性能参数为性能指标中除神经网络的准确率之外的任一种指标,服务器根据第一神经网络的性能信息以及反馈函数生成反馈值,包括:服务器根据第一神经网络的准确率、第一神经网络的第二性能参数以及反馈函数生成反馈值,其中,在第二性能参数与第一性能参数的差值小于第一阈值的情况下,第一神经网络的准确率与反馈值之间的关系为正相关,第二性能参数与第一性能参数的差值与反馈值之间的关系为负相关,在第二性能参数与第一性能参数的差值大于第一阈值的情况下,反馈值的取值为零;服务器根据第一神经网络的性能信息以及反馈函数生成反馈值之后,方法还包括:服务器增大第一性能参数。

在第四方面的一种可能实现方式中,服务器根据第一神经网络的性能信息以及反馈函数生成反馈值,包括:服务器将第一神经网络的性能与当前帕雷托前沿中的至少一个第二神经网络的性能进行对比;在第一神经网络的性能优于当前帕雷托前沿中的P个第二神经网络的情况下,服务器根据P以及反馈函数生成反馈值,其中,P为正整数,反馈值为正数,P越大,反馈值越大;在第一神经网络的性能劣于当前帕雷托前沿中的Q个第二神经网络的情况下,服务器根据Q以及反馈函数生成反馈值,其中,Q为正整数,反馈值为负数,Q越大,反馈值越小。

对于本申请第四方面以及第四方面的各种可能实现方式的具体实现步骤,以及每种可能实现方式所带来的有益效果,均可以参考第一方面以及第一方面中各种可能的实现方式中的描述,此处不再一一赘述。

第五方面,本申请实施例提供了一种服务器,可用于人工智能领域的神经网络定制化领域中,服务器可以包括接收单元、选取单元和发送单元,其中,接收单元,用于接收客户端发送的定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种指标或多种指标的组合;选取单元,用于以神经网络的性能指标为目标,从多个第一神经网络中选取N个第二神经网络,其中,多个第一神经网络为服务器根据功能指标和性能指标生成的,每个第一神经网络的功能均满足功能指标的要求,N为正整数,每个第二神经网络的性能均满足性能指标的要求;发送单元,用于将N个第二神经网络发送给客户端。

在第五方面的一种可能实现方式中,定制信息中还包括神经网络的个数指标,个数指标为N个,选取单元具体用于:以神经网络的性能指标为目标,从多个第一神经网络中选取最终帕雷托前沿,最终帕雷托前沿中包括M个第二神经网络,其中,M为正整数,M大于或者等于N;从M个第二神经网络选取N个第二神经网络。

在第五方面的一种可能实现方式中,服务器还包括:生成单元,用于利用第一循环神经网络,根据多个第一神经单元生成第三神经网络,第三神经网络为多个第一神经网络中的一个神经网络,第三神经网络中包括至少一个第二神经单元,至少一个第二神经单元包含于多个第一神经单元;选取单元具体用于:生成第三神经网络的性能信息,第三神经网络的性能信息与神经网络的性能指标中包括的信息的类型一致;通过对比第三神经网络的性能与当前帕雷托前沿中每个第二神经网络的性能,更新当前帕雷托前沿;根据第三神经网络的性能信息以及反馈函数生成反馈值;根据反馈值梯度更新第一循环神经网络的参数。

在第五方面的一种可能实现方式中,服务器还包括:获取单元,用于获取第四神经网络,第四神经网络中包括多个第一神经单元;训练单元,用于对第四神经网络进行初始迭代训练,其中,执行过初始迭代训练的第四神经网络用于初始化第三神经网络;生成单元具体用于:根据执行过初始迭代训练的第四神经网络中的多个第一神经单元,生成第三神经网络。

在第五方面的一种可能实现方式中,第四神经网络包括多个神经元层,每个神经元层中包括L个第一神经单元,其中,L为正整数;生成单元具体用于:通过第一循环神经网络输出L个数值,每个数值用于代表L个第一神经单元中的一个第一神经单元的权重;通过归一化指数函数将L个数值转换为L个概率值,L个概率值分别与L个第一神经单元对应,其中,归一化指数函数中的温度参数按照余弦函数的规律进行变化;根据L个概率值,从L个第一神经单元选取一个第二神经单元来实现第三神经网络中的一个神经元层的功能。

在第五方面的一种可能实现方式中,反馈函数中预先设置有第一性能参数以及第一阈值,第一性能参数为性能指标中除神经网络的准确率之外的任一种指标;生成单元具体用于:根据第三神经网络的准确率、第三神经网络的第二性能参数以及反馈函数生成反馈值,其中,在第二性能参数与第一性能参数的差值小于第一阈值的情况下,第三神经网络的准确率与反馈值之间的关系为正相关,第二性能参数与第一性能参数的差值与反馈值之间的关系为负相关,在第二性能参数与第一性能参数的差值大于第一阈值的情况下,反馈值的取值为零;服务器还包括:增大单元,用于增大第一性能参数。

在第五方面的一种可能实现方式中,生成单元具体用于:将第三神经网络的性能与当前帕雷托前沿中的至少一个第二神经网络的性能进行对比;在第三神经网络的性能优于当前帕雷托前沿中的P个第二神经网络的情况下,根据P以及反馈函数生成反馈值,其中,P为正整数,反馈值为正数,P越大,反馈值越大;在第三神经网络的性能劣于当前帕雷托前沿中的Q个第二神经网络的情况下,根据Q以及反馈函数生成反馈值,其中,Q为正整数,反馈值为负数,Q越大,反馈值越小。

在第五方面的一种可能实现方式中,接收单元,还用于接收客户端发送的神经网络选择信息;选取单元,还用于根据神经网络选择信息从N个第二神经网络中选取至少一个第五神经网络;服务器还包括:训练单元,用于对每个第五神经网络进行迭代训练,直至满足损失函数的收敛条件;发送单元,用于将完成迭代训练操作的至少一个第五神经网络发送给客户端。

在第五方面的一种可能实现方式中,接收单元,还用于接收客户端发送的数据集合,数据集合中的数据类型与功能指标具有关联关系,数据集合用于供服务器对神经网络执行迭代训练操作。

对于本申请第五方面提供的服务器的组成模块执行第五方面以及第五方面的各种可能实现方式的具体实现步骤,均可以参考第二方面以及第二方面中各种可能的实现方式中的描述,此处不再一一赘述。

第六方面,本申请实施例还提供了一种服务器,可用于人工智能领域的神经网络定制化领域中,服务器可以包括接收单元、生成单元和发送单元,其中,接收单元,用于接收客户端发送的定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种指标或多种指标的组合;生成单元,用于根据功能指标和性能指标生成N个第二神经网络;发送单元,用于将N个第二神经网络发送给客户端。

在第六方面的一种可能实现方式中,定制信息中还包括神经网络的个数指标,个数指标为N个。

在第六方面的一种可能实现方式中,接收单元,还用于接收客户端发送的神经网络选择信息;选取单元,还用于根据神经网络选择信息从N个第二神经网络中选取至少一个第五神经网络;服务器还包括:训练单元,用于对每个第五神经网络进行迭代训练,直至满足损失函数的收敛条件;发送单元,用于将完成迭代训练操作的至少一个第五神经网络发送给客户端。

在第六方面的一种可能实现方式中,接收单元,还用于接收客户端发送的数据集合,数据集合中的数据类型与功能指标具有关联关系,数据集合用于供服务器对神经网络执行迭代训练操作。

对于本申请第六方面提供的服务器的组成模块执行第六方面以及第六方面的各种可能实现方式的具体实现步骤,均可以参考第二方面以及第二方面中各种可能的实现方式中的描述,此处不再一一赘述。

第七方面,本申请实施例提供了一种通信设备,可用于人工智能领域的神经网络定制化领域中,通信设备包括:获取单元、发送单元和接收单元,其中,获取单元,用于获取定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种或多种指标的组合;发送单元,用于向服务器发送定制信息,定制信息用于供服务器根据定制信息获取N个第二神经网络,其中,N为正整数,每个第二神经网络的功能均满足功能指标的要求,每个第二神经网络的性能均满足性能指标的要求;接收单元,用于接收服务器发送的N个第二神经网络。

在第七方面的一种可能实现方式中,定制信息中还包括神经网络的个数指标,个数指标为N个,神经网络的个数指标用于供服务器确定向客户端发送的第二神经网络的数量。

在第七方面的一种可能实现方式中,获取单元,还用于获取神经网络选择指令,神经网络选择指令用于供客户端从N个第二神经网络中选取至少一个第五神经网络;通信设备还包括:生成单元,用于根据神经网络选择指令生成神经网络选择信息,神经网络选择信息用于指示服务器对至少一个第五神经网络中每个第五神经网络进行迭代训练;发送单元,还用于向服务器发送神经网络选择信息;接收单元,还用于接收服务器发送的完成迭代训练操作的至少一个第五神经网络。

在第七方面的一种可能实现方式中,发送单元,还用于向服务器发送数据集合,数据集合中的数据类型与功能指标具有关联关系,数据集合用于供服务器对神经网络执行迭代训练操作。

对于本申请第七方面提供的服务器的组成模块执行第七方面以及第七方面的各种可能实现方式的具体实现步骤,均可以参考第三方面以及第三方面中各种可能的实现方式中的描述,此处不再一一赘述。

第八方面,本申请实施例提供了一种神经网络处理装置,可用于人工智能领域的神经网络定制化领域中,神经网络处理装置包括:获取单元、生成单元和更新单元,其中,获取单元,用于获取神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种或多种指标的组合;生成单元,用于利用第一循环神经网络,根据多个第一神经单元生成第一神经网络,第一神经网络的功能满足功能指标的要求,第一神经网络中包括至少一个第二神经单元,至少一个第二神经单元包含于多个第一神经单元;生成单元,还用于服务器生成第一神经网络的性能信息,第一神经网络的性能信息与待生成神经网络的性能指标中包括的信息的类型一致;更新单元,还用于通过对比第一神经网络的性能与当前帕雷托前沿中每个第二神经网络的性能,来更新当前帕雷托前沿,其中,每个第二神经网络的性能均满足性能指标的要求;生成单元,还用于根据第一神经网络的性能信息以及反馈函数生成反馈值;更新单元,还用于根据反馈值梯度更新第一循环神经网络的参数;生成单元和更新单元重复执行上述第一神经网络生成操作、第一神经网络的性能信息生成操作、当前帕雷托前沿更新操作以及第一循环神经网络参数更新操作,直至产生最终帕雷托前沿。

在第八方面的一种可能实现方式中,获取单元,还用于获取第四神经网络,第四神经网络中包括多个第一神经单元;神经网络处理装置还包括:训练单元,用于对第四神经网络进行初始迭代训练,其中,执行过初始迭代训练的第四神经网络用于初始化第三神经网络;生成单元具体用于:根据执行过初始迭代训练的第四神经网络中的多个第一神经单元,生成第三神经网络。

在第八方面的一种可能实现方式中,第四神经网络包括多个神经元层,每个神经元层中包括L个第一神经单元,其中,L为正整数;生成单元具体用于:通过第一循环神经网络输出L个数值,每个数值用于代表L个第一神经单元中的一个第一神经单元的权重;通过归一化指数函数将L个数值转换为L个概率值,L个概率值分别与L个第一神经单元对应,其中,归一化指数函数中的温度参数按照余弦函数的规律进行变化;根据L个概率值,从L个第一神经单元选取一个第二神经单元来实现第三神经网络中的一个神经元层的功能。

在第八方面的一种可能实现方式中,反馈函数中预先设置有第一性能参数以及第一阈值,第一性能参数为性能指标中除神经网络的准确率之外的任一种指标;生成单元具体用于:根据第三神经网络的准确率、第三神经网络的第二性能参数以及反馈函数生成反馈值,其中,在第二性能参数与第一性能参数的差值小于第一阈值的情况下,第三神经网络的准确率与反馈值之间的关系为正相关,第二性能参数与第一性能参数的差值与反馈值之间的关系为负相关,在第二性能参数与第一性能参数的差值大于第一阈值的情况下,反馈值的取值为零;服务器还包括:增大单元,用于增大第一性能参数。

在第八方面的一种可能实现方式中,生成单元具体用于:将第三神经网络的性能与当前帕雷托前沿中的至少一个第二神经网络的性能进行对比;在第三神经网络的性能优于当前帕雷托前沿中的P个第二神经网络的情况下,根据P以及反馈函数生成反馈值,其中,P为正整数,反馈值为正数,P越大,反馈值越大;在第三神经网络的性能劣于当前帕雷托前沿中的Q个第二神经网络的情况下,根据Q以及反馈函数生成反馈值,其中,Q为正整数,反馈值为负数,Q越大,反馈值越小。

对于本申请第八方面以及第八方面的各种可能实现方式的具体实现步骤,以及每种可能实现方式所带来的有益效果,均可以参考第四方面以及第四方面中各种可能的实现方式中的描述,此处不再一一赘述。

第九方面,本申请实施例提供了一种服务器,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于执行存储器中的程序,包括如下步骤:接收客户端发送的定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种指标或多种指标的组合;以神经网络的性能指标为目标,从多个第一神经网络中选取N个第二神经网络,其中,多个第一神经网络为服务器根据功能指标和性能指标生成的,每个第一神经网络的功能均满足功能指标的要求,N为正整数,每个第二神经网络的性能均满足性能指标的要求;将N个第二神经网络发送给客户端,总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。

本申请第九方面中,处理器还可以用于执行第一方面的各个可能实现方式中服务器执行的步骤,具体均可以参阅第一方面,此处不再赘述。

第十方面,本申请实施例提供了一种服务器,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于执行存储器中的程序,包括如下步骤:接收客户端发送的定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种指标或多种指标的组合;根据神经网络的功能指标和性能指标,生成N个第二神经网络,其中,多个第一神经网络为服务器根据功能指标和性能指标生成的,每个第一神经网络的功能均满足功能指标的要求,N为正整数,每个第二神经网络的性能均满足性能指标的要求;将N个第二神经网络发送给客户端,总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。

本申请第十方面中,处理器还可以用于执行第二方面的各个可能实现方式中服务器执行的步骤,具体均可以参阅第一方面,此处不再赘述。

第十一方面,本申请实施例提供了一种服务器,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于执行存储器中的程序,包括如下步骤:获取定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种或多种指标的组合;向服务器发送定制信息,定制信息用于供服务器根据定制信息获取N个第二神经网络,其中,N为正整数,每个第二神经网络的功能均满足功能指标的要求,每个第二神经网络的性能均满足性能指标的要求;接收服务器发送的N个第二神经网络,总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。

本申请第十一方面中,处理器还可以用于执行第三方面的各个可能实现方式中通信设备执行的步骤,具体均可以参阅第三方面,此处不再赘述。

第十二方面,本申请实施例提供了一种服务器,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于执行存储器中的程序,包括如下步骤:获取神经网络的功能指标和神经网络的性能指标,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种或多种指标的组合;利用第一循环神经网络,根据多个第一神经单元生成第一神经网络,第一神经网络的功能满足功能指标的要求,第一神经网络中包括至少一个第二神经单元,至少一个第二神经单元包含于多个第一神经单元;生成第一神经网络的性能信息,第一神经网络的性能信息与待生成神经网络的性能指标中包括的信息的类型一致;通过对比第一神经网络的性能与当前帕雷托前沿中每个第二神经网络的性能,来更新当前帕雷托前沿,其中,每个第二神经网络的性能均满足性能指标的要求;根据第一神经网络的性能信息以及反馈函数生成反馈值;根据反馈值梯度更新第一循环神经网络的参数;重复执行上述第一神经网络生成操作、第一神经网络的性能信息生成操作、当前帕雷托前沿更新操作以及第一循环神经网络参数更新操作,直至产生最终帕雷托前沿,总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。

本申请第十二方面中,处理器还可以用于执行第四方面的各个可能实现方式中服务器执行的步骤,具体均可以参阅第四方面,此处不再赘述。

第十三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面或第三方面或第四方面所述的神经网络处理方法。

第十四方面,本申请实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面或第三方面或第四方面所述的神经网络处理方法。

第十五方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持服务器或神经网络处理装置实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存服务器或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

附图说明

图1为本申请实施例提供的人工智能主体框架的一种结构示意图;

图2为本申请实施例提供的神经网络处理系统的一种网络结构示意图;

图3为本申请实施例提供的神经网络处理方法的一种流程示意图;

图4为本申请实施例提供是多个第一神经网络的一种示意图;

图5为本申请实施例提供是当前帕雷托前沿的一种示意图;

图6为本申请实施例提供的神经网络处理方法的另一种流程示意图;

图7为本申请实施例提供的神经网络处理方法服务器生成最终帕累托前沿的一种流程示意图;

图8为本申请实施例提供的神经网络处理方法的一种流程示意图;

图9为本申请实施例提供的服务器的一种结构示意图;

图10为本申请实施例提供的服务器的另一种结构示意图;

图11为本申请实施例提供的服务器的又一种结构示意图;

图12为本申请实施例提供的通信设备的一种结构示意图;

图13为本申请实施例提供的神经网络处理装置的一种结构示意图;

图14为本申请实施例提供的服务器的再一种结构示意图;

图15为本申请实施例提供的通信设备的另一种结构示意图;

图16为本申请实施例提供的芯片的一种结构示意图。

具体实施方式

本申请实施例提供了一种神经网络处理方法以及相关设备,用于根据客户端发送的神经网络的功能指标和性能指标,向客户端发送N个第二神经网络,每个第二神经网络均同时满足前述功能指标和性能指标的要求,以实现神经网络的定制化。

下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本申请的说明书和权利要求书及上述附图中的术语“第一”、第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

首先对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。

(1)基础设施

基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。

(2)数据

基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。

(3)数据处理

数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。

其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。

推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。

决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。

(4)通用能力

对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。

(5)智能产品及行业应用

智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、平安城市等。

由于随着人工智能的发展,越来越多的产品及行业中需要应用到神经网络,具体的,作为示例,例如智能终端的即时通讯客户端中常常存在接收方将接收到的语音信息转换成文字信息的功能,则可以利用卷积神经网络实现语音识别的功能;作为另一示例,例如在自动驾驶领域,自动驾驶的车辆在行驶过程中,可以利用深度可分离卷积神经网络实现图像的分类;作为再一示例,例如在自动驾驶领域,为了实现对自动驾驶车辆的模拟测试,可以利用生成对抗神经网络生成虚拟道路环境;作为再一示例,例如在智能安防领域,为了提高监控摄像机采集到的图像的分辨率,可以利用卷积神经网络实现图像的分辨率提升等等,此处不再对其它应用场景一一进行举例。

但并不是所有应用到人工智能的行业的产品生产商都具有开发神经网络的能力,因此,结合上述说明,本申请实施例提供了一种神经网络处理方法,用于实现神经网络的定制化,具体的,服务器可以提供用于进行神经网络定制的客户端,则客户端可以获取用户输入的定制信息,并发送给服务器,其中,定制信息中包括神经网络的功能指标和性能指标,则服务器可以根据接收到的功能指标确定神经网络的通用能力,进而获取N个第二神经网络,每个第二神经网络均满足功能指标和性能指标的要求,服务器将所述N个第二神经网络发送给客户端,从而实现了神经网络的定制化。

通过上述描述可知,本申请实施例中同时涉及到服务器端和客户端,以下结合图2对本申请实施例中的神经网络处理系统的网络架构进行介绍,图2为本申请实施例提供的神经网络处理系统的网络架构图,在图2中,神经网络处理系统200包括客户端210、服务器220、数据库230、第一通信设备240、数据存储系统250和第二通信设备260。

客户端210部署于第一通信设备240上,用于接收用户录入的定制信息,定制信息中包括神经网络的功能指标和性能指标,并将定制信息发送给服务器220。

数据库230中存储有数据集合,所述数据集合用于供服务器220对神经网络进行迭代训练,所述数据集合可以为用户通过客户端210上传至服务器220中的,也可以为服务器220通过数据采集设备采集获取的。服务器220在接收到定制信息之后,获取N个第二神经网络,每个第二神经网络都满足功能指标和性能指标的要求,服务器220将N个第二神经网络发送给客户端210;进一步的,服务器还用于利用数据库230中存储的数据集合对N个第二神经网络中的所有第二神经网络或部分第二神经网络进行迭代训练,以得到训练成熟的神经网络,并将成熟的神经网络发送给客户端210。

客户端210在接收到成熟的神经网络之后,可以在第一通信设备240上运行所述成熟的神经网络;也可以将所述成熟的神经网络发送给第二通信设备260,或者将所述成熟的神经网络加载到第二通信设备260上,由第二通信设备260运行所述成熟的网络。

其中,第一通信设备240包括但不限于平板电脑、笔记本电脑、掌上电脑、手机、语音交互设备及个人电脑(personal computer,PC),此处不做限定。第二通信设备260可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。

客户端210与服务器220以及客户端210与第二通信设备260之间均可以通过无线网络连接。其中,上述的无线网络使用标准通信技术和/或协议。无线网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、专用网络或者虚拟专用网络的任何组合)。在另一些实施例中,还可以使用定制或专用数据通信技术取代或者补充上述数据通信技术。

虽然图2中仅示出了一个服务器220、一个第一通信设备240和一个第二通信设备260,但应当理解,图2中的示例仅用于理解本方案,具体服务器220、第一通信设备240和第二通信设备260的数量均应当结合实际情况灵活确定。本申请实施例中,仅以提供的信息生成的方法应用于通讯类型的客户端上为例,进行说明。

结合上述描述,下面开始对本申请实施例提供的神经网络处理方法的具体实现流程进行描述,服务器在接收到客户端发送的定制信息之后,需要向客户端发送N个第二神经网络,具体的,需要服务器以定制信息中的功能指标和性能指标为目标,获取N个第二神经网络,也即以性能指标为目标,引导服务器去生成满足性能指标的第一神经网络。更具体的,在一种情况下,在初始阶段,服务器通过控制器随机生成一个第一神经网络,并根据所述一个第一神经网络的性能信息反馈这个第一神经网络是否满足性能指标来更新控制器参数,进而服务器通过控制器生成的第一神经结构满足性能指标的概率就会越来越高,也即在这种情况下,服务器虽然以性能指标为目的去引导控制器往生成满足性能指标的方向去迭代更新,但在控制器迭代更新的过程中,服务器不能保证控制器生成的所有第一神经网络都满足性能指标,所以需要根据所述功能指标和所述性能指标生成多个第一神经网络,进而从多个第一神经网络中选取N个第二神经网络,其中,每个第一神经网络满足功能指标的要求,但不一定满足性能指标的要求,而选取出的每个第二神经网络即满足功能指标的要求,又满足性能指标的要求;在另一种情况下,服务器也可以直接生成N个第二神经网络,例如服务器可以对控制器进行预先训练,使得服务器可以通过训练好的控制器,根据所述功能指标和所述性能指标直接生成N个第二神经网络。

其中,控制器可以具体表现为循环神经网络,循环神经网络(Recurrent NeuralNetworks,RNNs)是用来处理序列数据的神经网络;且理论上,RNNs能够对任何长度的序列数据进行处理。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNNs之所以称为循环神经网路,是因为循环神经网络中一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。

由于在上述两种情况下服务器侧的流程有所不同,以下分别对上述两种情况的具体实现流程进行描述。

一、从多个第一神经网络中选取N个第二神经网络

本申请实施例中,请参阅图3,图3为本申请实施例提供的神经网络处理方法的一种流程示意图,本申请实施例提供的神经网络处理方法可以包括:

301、客户端获取定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标。

本申请的一些实施例中,客户端可以向用户展示定制信息输入界面,则在用户需要定制神经网络时,可以通过客户端输入欲定制的神经网络的定制信息,对应的,客户端可以获取到用户输入的定制信息,其中,定制信息中包括神经网络的功能指标和神经网络的性能指标。具体的,神经网络的功能指标用于供服务器确定第二神经网络的通用能力,也即服务器可以根据功能指标确定需要第二神经网络完成什么样的任务,作为示例,例如神经网络的功能指标可以为文本翻译、文本的分析、语音识别、图像识别、图像分类、图像超分辨率重建中的一种或者多种的组合等等;神经网络的性能指标可以包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种指标或多种指标的组合等。

更具体的,作为示例,例如第二神经网络的功能指标为文本翻译,则神经网络的准确率可以为第二神经网络翻译正确的字符数与总字符数之间的比值;作为另一示例,例如第二神经网络的功能指标为图像超分辨率重建,则可以获取同一对象的低质量图像、高清图像,利用第二神经网络对低质量图像进行超分辨率重建,神经网络的正确率可以为第二神经网络输出的重建图像与高清图像之间的相似度,此处不再对其它场景下的神经网络的准确率进行一一举例。神经网络的参数量指的是神经网络中权重的数量,由于每个神经元均对应一个权重,则神经网络的参数量指标可以反映出用户对神经网络的神经元数量的要求。神经网络的处理时长指的是神经网络处理一个单位的任务所需要的时长,作为示例,例如第二神经网络的功能指标是文本翻译,一个单位的任务可以指的翻译10个字,则神经网络的处理时长指的是第二神经网络翻译10个字符的时长;作为另一示例,例如第二神经网络的功能指标是图像分类,一个单位的任务可以指的是100张图像,则神经网络的处理时长指的是第二神经网络将100张图像进行分类的时长等。每秒浮点运算次数可以反映神经网络的数据处理速度。应当理解,上述对功能指标、一个单位的任务、神经网络的处理时长的举例均仅为方便理解本方案,不用于限定本方案。

具体的,在一种实现方式下,客户端获取神经网络的功能指标的方式可以为客户端向用户展示至少一种功能指标,并接收用户输入的功能指标选择指令,从而客户端可以根据所述功能指标选择指令从至少一种功能指标选择指令中确定一种功能指标。更具体的,在一种情况下,客户端可以直接向用户展示至少一种功能指标,从而用户可以通过按压或点击与功能指标对应的选择图标来输入功能指标选择指令;在另一种情况下,客户端也可以为向用户展示功能指标展示按钮,当用户点击所述功能指标展示按钮时,客户端通过悬浮窗或滑动文本框向用户展示至少一种功能指标,从而用户可以通过按压或点击与功能指标对应的选择图标来输入功能指标选择指令,进一步的,当客户端不能一次性展示所有种类的功能指标,用户还可以通过输入上下滑动操作来切换所述滑动文本框中展示的功能指标。可选的,客户端在展示至少一种功能指标时,还可以同时设置有与自定义选项对应的图标,当用户通过所述图标输入自定义指令时,客户端可以获取用户输入的功能指标,以提高本方案的全面性。

在另一种实现方式下,客户端也可以向用户展示文本框形式的功能指标录入接口,则用户可以直接通过文本框输入功能指标;在另一种实现方式下,用户还可以通过语音的形式输入神经网络的功能指标等等,具体客户端获取神经网络的功能指标的方式可以结合实际产品的具体形态确定,此处举例仅为方便理解本方案,不用于限定本方案。

客户端获取神经网络的性能指标的方式可以为客户端向用户展示至少一种性能名称,每种性能名称旁边均配置有一个文本框,用于接收用户输入的性能指标,进一步的,每个文本框旁边还可以设置有调整按钮,用于调大或调小性能指标;客户端也可以在每种性能名称旁边配置有至少两个性能指标选项,则用户通过输入选择指令的方式输入性能指标等。作为示例,例如客户端示出的性能名称有神经网络的准确率、神经网络的参数量和神经网络占用的内存大小,则用户可以通过名称旁边的文本框输入神经网络的准确率为大于或等于百分之九十五、神经网络的参数量的指标为小于或等于300万个,神经网络占用的内存大小为小于或等于30M,进一步的,还可以通过调整按钮调整指标的大小,例如通过调整按钮将神经网络的参数量的指标调小至280万个等,应当理解,此处举例仅为方便理解本方案,不用于限定本方案。

可选的,客户端向用户展示的定制信息录入界面中还可以包括神经网络的个数指标录入接口,从而客户端获取的定制信息中还可以包括神经网络的个数指标,其中,所述个数指标为N个,N为正整数,N的取值可以为1、2、3、4、5、6等,具体N的取值此处不做限定。具体的,客户端的定制信息录入界面上可以展示有用于输入神经网络的个数指标的文本框,从而用户可以通过文本框输入神经网络的个数指标,与性能指标的展示方式类似,在文本框的旁边也可以设置有调整按钮,从而可以通过调整按钮调大或调小神经网络的个数指标;客户端也可以展示几个神经网络的个数指标的选项,从而用户可以通过输入选择指令的方式输入神经网络的个数指标等。

302、客户端获取数据集合。

本申请的一些实施例中,客户端在获取定制信息之外还可以获取数据集合,其中,数据集合用于供服务器对神经网络执行迭代训练操作,数据集合中的数据类型与功能指标具有关联关系,作为示例,例如神经网络的功能指标为文本翻译,则数据集合中可以包括大量的文本;作为另一示例,例如神经网络的功能指标为语音识别,则数据集合中可以包括大量的语音;作为再一示例,例如神经网络的功能指标为图像识别或图像分类,则数据集合中可以包括大量的图像;作为再一示例,例如神经网络的功能指标为图像超分辨率重建,则数据集合中包括大量成对的图像,成对的图像分别为低质量图像和高清质量图像等等,具体此处不做限定。

具体的,客户端向用户展示与添加数据集合功能对应的图标,当用户执行点击、按压或双击所述图标时,客户端可以接收到数据集合添加指令,进而可以获取数据集合。更具体的,在一实现方式中,可以为客户端所在的执行设备或者与所述执行设备连接的外部存储设备上存储有所述数据集合,当客户端接收到用户输入的数据集合添加指令时,客户端可以获取用户输入的所述数据集合的存储地址,进而从所述存储地址处获取数据集合,作为示例,例如数据集合中的数据类型为图像,则执行设备或与执行设备连接的外部存储设备上可以存储有图像数据,在客户端获取到用户输入的存储地址时,可以到存储地址对应的位置去读取图像数据;在另一种实现方式中,也可以为当客户端接收到用户输入的数据集合添加指令时,客户端可以接收用户直接输入的数据集合,作为示例,例如数据集合中的数据类型为文本,则客户端可以接收用户直接输入的文本数据等,应当理解,此处举例仅为方便理解本方案,不用于限定本方案。

需要说明的是,本申请实施例不限定步骤301和步骤302的执行顺序,可以先执行步骤301,再执行步骤302;也可以先执行步骤302,再执行步骤301。

303、客户端向服务器发送定制信息。

本申请的一些实施例中,客户端在获取到定制信息之后,可以将定制信息打包,并向服务器发送打包后的定制信息,进而服务器可以接收到客户端发送的定制信息。

可选的,在定制信息中包括神经网络的个数指标的情况下,神经网络的个数指标用于供服务器确定向客户端发送的第二神经网络的数量,通过前述方式,用户不仅可以定制神经网络的功能和性能,还可以定制想要的神经网络的数量,进一步提高了神经网络的定制化的精度,有利于增强客户粘度。

304、客户端向服务器发送数据集合。

本申请的一些实施例中,客户端在获取到数据集合之后,可以将数据集合打包,并向服务器发送打包后的数据集合,从而服务器可以接收到客户端发送的数据集合,进而可以利用所述数据集合对神经网络进行迭代训练操作。本申请实施例中,相对于由服务器根据神经网络的功能目标自主获取数据集合,由客户端向服务器发送对神经网络进行迭代训练操作时的数据集合,会使得神经网络的迭代训练过程更具有针对性,从而经过迭代训练后的神经网络的准确率更高。

应当理解,本申请实施例不限定步骤303和步骤304的执行顺序,可以先执行步骤303,再执行步骤304;也可以先执行步骤304,再执行步骤303;还可以同时执行步骤303和步骤304,也即客户端可以将定制信息和数据集合一起打包,进而将打包后的定制信息和数据集合一起发送给服务器。

需要说明的是,步骤302和步骤304为可选步骤,若不执行步骤302,则也不执行步骤304,则客户端执行完步骤301可以直接执行步骤303,进而执行步骤305;若执行步骤302,则执行步骤304。

305、服务器获取第四神经网络,第四神经网络中包括多个第一神经单元。

本申请的一些实施例中,服务器在接收到定制信息之后,可以根据定制信息中的功能指标确定需要生成的神经网络的通用能力类型,进而可以确定能够实现所述通用能力的多个第一神经单元,则服务器可以获取第四神经网络,第四神经网络中包括所述多个第一神经单元。其中,第一神经单元为一个泛指的概念,第一神经单元指的是能够组建实现定制信息中的功能指标的第一神经网络的神经单元,第四神经网络指的是包括多个第一神经单元的神经网络。神经单元与神经元不同,每个神经单元中可以包括至少一个神经元,每个神经单元用于实现一种操作,作为示例,例如定制信息中的功能指标为图像识别,则神经单元可以为3×3卷积层、5×5卷积层、平均池化层、最大池化层或者单元操作层等;作为另一示例,例如定制信息中的功能指标为文本预测,则神经单元可以为输入层、循环神经网络层、输出层或者单元操作层等等,每个神经单元的具体表现形式应当结合神经网络的功能指标确定,此处不进行限定。

具体的,卷积层用于可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用维度相同的多个权重矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化……该多个权重矩阵维度相同,经过该多个维度相同的权重矩阵提取后的特征图维度也相同,再将提取到的多个维度相同的特征图合并形成卷积运算的输出。

在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化层和/或最大池化层,以用于对输入图像进行采样得到较小尺寸的图像。平均池化层可以在特定范围内对图像中的像素值进行计算产生平均值。最大池化层可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像大小相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。单元操作层指的是输入等于输出的神经元层。

第四神经网络也是一个泛指的概念,指的是包括多个第一神经单元的神经网络,第四神经网络可以包括多个(例如H个,H为正整数)神经元层,每个神经元层中包括L个第一神经单元,L为正整数。具体H和L的取值应当结合第一神经单元对应的功能目标以确定,此处不进行限定。可选的,每个神经元层的L个第一神经单元中都可以包括单元操作层,由于单元操作层是输入等于输出的神经元层,也即若选择单元操作层来实现第三神经网络的一个神经元层的功能,那相当于这一层不存在,从而可以通过调整第三神经网络中的单元操作层的数量来调整第三神经网络的神经元层的数量。

具体的,服务器上可以预先存储有多个第一神经单元,服务器在接收到定制信息之后,生成包括多个第一神经单元的第四神经网络;也可为服务器上预先存储有分别与多种功能对应的多个第四神经网络,则服务器在接收到客户端发送的定制信息之后,可以根据定制信息中携带的功能指标从多个第四神经网络中选取功能与功能指标匹配的一个第四神经网络,作为示例,例如服务器上可以预先存储有五个第四神经网络,分别用于文本翻译、文本的分析、语音识别、图像识别以及图像分类,服务器接收的定制信息中的功能指标为图像分类,则服务器可以从五个第四神经网络中选取用于进行图像分类的第四神经网络等,应当理解,上述举例仅为方便理解本方案,不用于限定本方案。

306、服务器对第四神经网络进行初始迭代训练。

本申请的一些实施例中,服务器在获取到第四神经网络之后,可以对第四神经网络进行初始迭代训练,其中,执行过初始迭代训练的第四神经网络用于初始化第三神经网络。具体的,若执行步骤304,则步骤306可以包括:服务器利用客户端发送的数据集合对第四神经网络进行初始迭代训练。

更具体的,由于第四神经网络的每个神经元层中均包括多个第一神经单元,则服务器对第四神经网络进行初始迭代训练的方式可以为:随机初始化第四神经网络中所有有参数的第一神经单元的参数,并从第四神经网络的每一层神经元层的多个第一神经单元中随机挑选一个第一神经单元,组成第四神经网络的子神经网络,利用第一损失函数,采用随机梯度下降法更新该子神经网络的参数,直至满足第二预设条件,其中,第二预设条件可以为直至达到第一损失函数的收敛条件,也可以为子神经网络的参数更新次数达到第二阈值,作为示例,第二阈值的取值可以为1500次、2000次、2500次等,具体不限定第二阈值的次数。在第四神经网络的子神经网络执行完初始迭代操作之后,可以得到该子神经网络中每个神经元的参数,则服务器在生成第三神经网络时,不再为第三神经网络的每个神经元随机初始化参数,而是采用执行完初始迭代训练操作的子神经网络的参数。

本申请实施例中,由于神经网络的参数指标中一般都存在神经网络的准确率指标,而在服务器对第三神经网络的准确率进行统计时,需要先对第三神经网络进行迭代训练,再开始统计第三神经网络的准确率,若随机初始化第三神经网络的参数(也即没有提前训练第四神经网络的参数),再对第三神经网络进行迭代训练,来得到第三神经网络的准确率,整个第三神经网络的准确率的统计时长就会较长,而服务器需要生成多个第三神经网络,每个第三神经网络都要从随机初始化状态训练到相对成熟的状态,这会导致整个训练时长特别长,而通过上述方式,先对第四神经网络进行初始迭代训练,然后利用执行过初始迭代训练的第四神经网络用于初始化第三神经网络,会大大缩短每个第三神经网络的训练时长,从而提高了本方案中神经网络定制过程的效率。

307、服务器利用第一循环神经网络,根据多个第一神经单元,生成第三神经网络。

本申请实施例中,服务器在根据定制信息中携带的神经网络的功能指标确定多个第一神经单元之后,可以利用第一循环神经网络,根据多个第一神经单元,生成第三神经网络,也即服务器可以从多个第一神经单元中选取至少一个第二神经单元,利用至少一个第二神经单元组建一个第三神经网络。其中,第三神经网络为一个泛指的概念,指的是服务器利用第一循环神经网络生成的多个第一神经网络中的任一个神经网络,第三神经网络的功能满足功能指标的要求,但不一定满足性能指标的要求。第一循环神经网络也是一个泛指的概念,指的是用于协助服务器生成第三神经网络的循环神经网络,当生成的第三神经网络的网络结构发生变化时,第一循环神经网络可以发生变化,也可以不发生变化,作为示例,例如当第三神经网络的网络结构为残差网络时,和第三神经网络的网络结构为卷积神经网络时,所采用的的第一循环神经网络可以不同。

应当理解,步骤305和步骤306为可选步骤,若执行步骤305和步骤306,则步骤307具体可以包括:B1、服务器通过第一循环神经网络输出L个数值,每个数值用于代表L个第一神经单元中的一个第一神经单元的权重;B2、服务器通过归一化指数函数将L个数值转换为L个概率值,L个概率值分别与L个第一神经单元一一对应;B3、服务器根据L个概率值,从L个第一神经单元选取一个第二神经单元来实现第三神经网络中的一个神经元层的功能;服务器重复执行步骤B1、B2和B3直至从第四神经网络的H个神经元层的所有神经元层中各选取一个第二神经单元来组成第三神经网络,进一步的,每个神经元层中包括L个第一神经单元中包括用于实现单位操作的第一神经单元,其中单位操作指的是输出和输出相同的操作。

更具体的,由于第一循环神经网络处理的是序列数据,则服务器在生成第三神经网络的第一层神经元层时,需要向第一循环神经网络输入包括S个0的数字序列,其中,S为正整数,从而第一循环神经网络执行第一次循环,并输出一个包含L个数值的向量,每个数值代表一个第一神经单元的权重,例如(x

其中,P(x

可选的,归一化指数函数中的温度参数T可以按照余弦函数的规律进行变化,作为示例,例如所述余弦函数的最小值的取值为5,最大值的取值为15,也即所述T的取值范围为5至15,所述T通过2000次变化可以实现从取值5到取值15;作为另一示例,例如所述余弦函数的最小值的取值为6,最大值取值为12,也即所述T的取值范围为6至12,所述T通过1000次变化可以实现从取值6到取值12等,此处举例仅为方便理解本方案,不用于限定本方案。本申请实施例中,服务器通过利用第一循环神经网络生成L个权重值,并利用归一化指数函数将L个权重值转换为L个概率值,进而服务器可以根据L个概率值从L个第一神经单元选取一个第二神经单元来实现所述第三神经网络中的一个神经元层的功能,通过上述方式,提供了生成第三神经网络的具体实现过程,提高了本方案的可实现性;此外,由于归一化指数函数中的温度参数T越大,第一循环神经网络采样到L个第一神经单元中每个第一神经单元的概率会趋于平均,则服务器采样的第三神经网络越随机。而温度参数T越大,服务器会根据第一循环神经网络学习到的策略去生成第三神经网络,而T按照余弦函数的规律进行变化,可以避免第一循环神经网络的参数收敛到一个局部最优值而跳不出来,也即保证了最后的N个第二神经网络是从大量的第一神经网络中选取出来的,而不是从局部的少量第一神经网络中选取出来的,从而保证了N个第二神经网络的性能。

服务器在获取到L个第一神经单元的L个概率值之后,从第四神经网络的第一层神经元层的L个第一神经单元中选取一个第二神经单元,用于实现第三神经网络的第一层神经单元层的功能,至此,服务器执行完一次步骤B1、B2和B3。

服务器在生成第三神经网络的第二层神经元层的过程,服务器先获取与第一层神经元层选取的第二神经单元对应的包括S个数字的序列,并将所述包括S个数字的序列输入到第一循环神经网络中,第一循环神经网络输出L个数值,所述L个数值分别代表第四神经网络的第二层神经元层包括的L个第一神经单元的权重,进而利用归一化指数函数将L个数值转换为L个概率值,服务器根据L个概率值从第四神经网络的第二层神经元层包括的L个第一神经单元中选择一个第一神经单元用于实现第三神经网络的第二层神经元层的功能,至此,服务器又执行完一次步骤B1、B2和B3。

服务器在生成第三神经网络的第二层神经网络的过程与生成第三神经网络的第一层神经网络的过程的区别在于,服务器在生成第三神经网络的第一层神经网络时输入的为包括S个0的序列,服务器在生成第三神经网络的第二层神经网络时输入的为与第一层神经元层选取的第二神经单元对应的包括S个数字的序列。

服务器在生成第三神经网络的第三层神经元层至最后一层神经元层的过程与服务器生成第三神经网络的第二层神经网络的过程类似,此处不再赘述。

服务器重复执行步骤B1、B2和B3,直至从第四神经网络的H个神经元层的所有神经元层中各选取一个第二神经单元来组成第三神经网络,具体的,可以为服务器每执行完一次步骤B1、B2和B3之后,都判断是否满足第三预设条件,若满足第三预设条件,则输出第三神经网络,且不再重复执行步骤B1;若不满足第三预设条件,则继续执行步骤B1,其中第三预设条件可以为判断步骤B1、B2和B3的执行次数是否达到H次,也可以为判断当前的执行对象是否为第四神经网络的第H个神经元层等等,具体此处不做限定。

若不执行步骤305和步骤306,则步骤307具体可以包括:服务器将多个第一神经单元呈矩阵式排列,所述由多个第一神经单元组成的矩阵有J列,每列有K行,其中,J和K均为正整数,进一步的,J的取值可以与H相同,K的取值可以与L相同,当然,也可以不同,此处不做限定,C1服务器通过第一循环神经网络输出K个数值,每个数值用于代表K个第一神经单元中的一个第一神经单元的权重;C2服务器通过归一化指数函数将K个数值转换为K个概率值,K个概率值分别与K个第一神经单元对应;C3服务器根据K个概率值,从K个第一神经单元选取一个第二神经单元来实现第三神经网络中的一个神经元层的功能;服务器重复执行步骤C1、C2和C3直至从J列第一神经单元中各选取一个第二神经单元来组成第三神经网络。

本申请实施例中,服务器执行步骤C1、C2和C3的方式与服务器执行步骤B1、B2和B3的方式类似,区别仅在于在执行步骤B1、B2和B3的过程中,服务器是从L个第一神经单元中选取一个第二神经单元,然后重复执行H次步骤B1、B2和B3;在执行步骤C1、C2和C3的过程中,服务器是从K个第一神经单元中选取一个第二神经单元,然后重复执行J次步骤C1、C2和C3,服务器执行步骤C1、C2和C3的方式可以参阅上述对步骤B1、B2和B3的执行过程的描述,此处不再一一赘述。

更具体的,由于服务器在利用第一循环神经网络生成第三网络的时候,就已经知道后续反馈过程中使用的反馈函数是怎么样的,本申请实施例中采用的反馈函数包括退火反馈函数和非主导排序反馈函数,其中,退火反馈函数用于引导第一循环函数沿着一种性能参数由小到大的方向生成第三神经网络,作为示例,例如第一循环函数先生成参数量小的第三神经网络,再生成参数量大的第三神经网络,而非主导排序反馈函数则引导服务器从一个性能差的帕雷托前沿演化到一个性能优良的帕雷托前沿。

因此,若采用的反馈函数为退火反馈函数,则需要先对第一循环神经网络进行初始训练,使得第一循环函数在初始生成第三神经网络中的神经单元的概率值时,生成的权重值中,对于参数小的神经单元大概率赋予较高的权重,从而引导服务器在初始阶段生成的第三神经网络的参数量较小;若采用反馈函数为非主导排序反馈函数,则无需对第一循环神经网络进行初始训练。

308、服务器生成第三神经网络的性能信息,第一神经网络的性能信息与待生成神经网络的性能指标中包括的信息的类型一致。

本申请的一些实施例中,服务器在获取到第三神经网络之后,可以根据定制信息中携带的性能指标生成第三神经网络的性能信息,第一神经网络的性能信息与待生成神经网络的性能指标中包括的信息的类型一致。

具体的,若性能指标中不包括神经网络的准确率指标,而是包括神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种指标或多种指标的组合,服务器在获得第三神经网络之后,可以计算第三神经网络的参数量和神经网络占用的内存大小,并利用步骤306中执行过初始迭代训练的第四神经网络初始化第三神经网络,也即利用执行完初始迭代训练操作的子神经网络的参数来初始化第三神经网络的参数,进而可以在第三神经网络执行一次任务之后,就可以获得神经网络的处理时长和神经网络的每秒浮点运算次数。

若性能指标中包括神经网络的准确率指标,则服务器在利用执行完初始迭代训练操作的子神经网络的参数来初始化第三神经网络的参数之后,可以利用第二损失函数,继续对第三神经网络进行迭代训练,直至满足第三预设条件,具体的,可以为满足第二损失函数的收敛条件,也可以第三神经网络的迭代训练次数达到第四阈值等等,具体此处不做限定。并统计第三神经网络在多次迭代训练过程中的准确率。

其中,第二损失函数和第一损失函数可以为相同种类的损失函数,例如第一损失函数和第二损失函数都可以为逐像素对比损失函数,区别在于,第二损失函数的收敛条件难于第一损失函数的收敛条件,例如第一损失函数和第二损失函数均为逐像素对比损失函数,在两个图像之间逐像素对比的值小于8时,就可以满足第一损失函数的收敛条件,而两个图像之间逐像素对比的值要小于5时,才满足第二损失函数的收敛条件等。当然,第一损失函数和第二损失函数也可以采用不同类型的损失函数,例如第一损失函数为逐像素对比损失函数,第二损失函数为感知损失函数等,具体此处均不作限定。

在执行步骤306的情况下,第四阈值的取值远小于第二阈值的取值,作为示例,例如第四阈值的取值可以为50次、60次、65次或其它数值等等。在不执行步骤306的情况下,第四阈值的取值较大,例如1500次、2000次、2500次等,此处不做限定。

309、服务器通过对比第三神经网络的性能与当前帕雷托前沿中每个第二神经网络的性能,来更新当前帕雷托前沿。

本申请的与一些实施例中,服务器在获得到第三神经网络的性能信息之后,可以通过对比第三神经网络的性能与当前帕雷托前沿中每个第二神经网络的性能,来更新当前帕雷托前沿。其中,第二神经网络为一个泛指的概念,指的是从多个第一神经网络(也即多个第三神经网络)中选取的性能最优的神经网络;由于性能指标中可以包括至少两种指标,则服务器无法从单一的维度去判断哪一个第二神经网络的性能最优,只能说哪些第二神经网络最优,作为示例,例如性能指标中包括准确率和参数量,准确率越高越好,参数量越小越好,1号第三神经网络的准确率为百分之九十七,参数量为30个;2号第三神经网络的准确率为百分之九十五,参数量为10个;3号第三神经网络的准确率为百分之九十五,参数量为13个;则可以确定2号第三神经网络的性能优于3号第三神经网络的性能,但无法确定1号和2号第三神经网络中哪一个为性能最优的第二神经网络,而只能说1号和2号第三神经网络均为性能最优的两个第二神经网络。帕雷托前沿中包括的就是所有性能最优的第二神经网络,在服务器生成第一个第三神经网络之前,当前帕雷托前沿为一个空集,应当理解,前述举例仅为方便理解本方案,不用于限定本方案。

具体的,在当前帕累托前沿为空集时,可以判断第一个第三神经网络的至少两种性能是否满足定制信息中的至少两种性能指标的要求,作为示例,例如定制信息中的至少两种性能指标有准确率高于百分之九十五,占用内存大小低于50M,则需要判断第一个第三神经网络是否准确率高于百分之九十五且占用内存大小低于50M,若是,则加入当前帕累托前沿;若不是,则不加入帕累托前沿中,应当理解,前述举例仅为方便理解本方案,不用于限定本方案。

在当前帕累托前沿中包括至少一个第二神经网络时,需要将一个第三神经网络的性能与当前帕累托前沿中的每个第二神经网络的性能进行对比,若所述一个第三神经网络优于任一个第二神经网络,则将所述一个第三神经网络加入到当前帕累托前沿,将劣于所述一个第三神经网络的第二神经网络从当前帕累托前沿中移除;若所述一个第三神经网络劣于任一个第二神经网络,则不更新当前帕累托前沿;若所述一个第三神经网络不优于任一个第二神经网络,且不劣于任一个第二神经网络,则将所述一个第三神经网络加入当前帕累托前沿,且不从当前帕累托前沿中移除任何第二神经网络。

更具体的,本申请实施例中不限定步骤309的执行顺序,服务器可以在每得到一个第三神经网络的性能信息之后,就执行一次当前帕累托前沿更新操作,则步骤309可以在步骤310至步骤312中任一步骤之前或之后执行;也可以为在确定满足第一预设条件之后,利用生成的多个第一神经网络(也即第三神经网络),以及每个第三神经网络的性能信息,一次性执行多个当前帕累托前沿更新操作,以从多个第一神经网络中选取最终帕累托前沿,则步骤309需要在步骤310与步骤313之间执行。

310、服务器判断是否满足第一预设条件,若满足,则进入步骤313,若不满足,则进入步骤311。

本申请的一些实施例中,服务器在通过步骤307生成第三神经网络之后,可以判断是否满足第一预设条件,具体的,服务器判断是否满足第一预设条件的方式可以为第三神经网络的生成次数是否达到第四阈值,若达到第四阈值则视为满足第一预设条件,其中,第四阈值的取值可以为6000次、5000次、7000次或其它数值等;也可以为判断第一循环神经网络是否满足第三损失函数的收敛条件,若满足第三损失函数的收敛条件则视为满足第一预设条件,其中,第三损失函数为一个泛指的概念,指的是用于训练第一循环神经网络的损失函数等,第一预设条件还可以为其它条件等,此处举例均仅为方便理解本方案,不用于限定本方案。

311、服务器根据第三神经网络的性能信息以及反馈函数生成反馈值。

本申请的一些实施例中,服务器在获取到当前第三神经网络的性能信息之后,若服务器确定不满足第一预设条件,则需要再次生成下一个第三神经网络,可以根据当前第三神经网络的性能信息以及反馈函数生成反馈值,其中,反馈函数可以为退火反馈函数或非主导排序反馈函数,当采用这两种反馈函数时,整个操作过程有所不同,以下分别进行描述。

A、退火反馈函数

本实施例中,当反馈函数采用退火反馈函数时,步骤311,具体可以包括:服务器根据第三神经网络的准确率、第三神经网络的第二性能参数以及反馈函数生成反馈值,其中,在第二性能参数与第一性能参数的差值小于第一阈值的情况下,反馈值的取值可以为正数,第三神经网络的准确率与反馈值之间的关系为正相关,第二性能参数与第一性能参数的差值与反馈值之间的关系为负相关,在第二性能参数与第一性能参数的差值大于第一阈值的情况下,反馈值的取值为零或负数。

具体的,退火反馈函数中可以预先设置有第一性能参数以及第一阈值,其中,第一性能参数和第二性能参数均为一个泛指的概念,第一性能参数和第二性能参数的信息类型相同,均为性能指标中除神经网络的准确率之外的任一种指标,例如神经网络的参数量、所占内存大小、运行速度等等,此处不做限定。第一性能参数指的是退火反馈函数中的指标,第二性能参数为第三神经网络的实际性能参数,第一阈值的取值可结合第一性能参数和第二性能参数的信息类型确定。

更具体的,退火反馈函数的具体公式可以如下:

其中,α表示第三神经网络,acc

其中,τ表示第一性能参数,δ表示第一阈值,f

在每次执行一次退火反馈函数之后,服务器都可以增大第一性能参数的取值,也即增加τ→τ+Δτ,其中,Δτ是设定的步长,步长的取值也是结合第一性能参数和第二性能参数的信息类型确定。为进一步理解本方案,请参阅图4,图4为本申请实施例提供是多个第一神经网络的一种示意图,图4中箭头的方向指的是第三神经网络的生成方向,图4中的坐标系的横轴代表每个第三神经网络的第二性能参数,图4中的坐标系的纵轴代表每个第三神经网络的准确率,不难看出,服务器沿着第二性能参数由小到大的方向生成多个第三神经网络,应当理解,此处举例仅为方便理解本方案,不用于限定本方案。

B、非主导排序反馈函数

本实施例中,当反馈函数采用非主导排序反馈函数时,服务器将第三神经网络的性能与当前帕雷托前沿中的至少一个第二神经网络的性能进行对比;在第三神经网络的性能优于当前帕雷托前沿中的P个第二神经网络的情况下,服务器根据P以及反馈函数生成反馈值,其中,P为正整数,反馈值为正数,P越大,反馈值越大;在第三神经网络的性能劣于当前帕雷托前沿中的Q个第二神经网络的情况下,服务器根据Q以及反馈函数生成反馈值,其中,Q为正整数,反馈值为负数,Q越大,反馈值越小。

具体的,非主导排序反馈函数的具体公式可以如下:

其中,N(P

非主导排序反馈函数的含义是,当通过第一循环神经网络采样到的第三神经网络优于当前帕雷托前沿上的第二神经网络结构,就给一个正的反馈值,鼓励第一循环神经网络去采样跟当前第三神经网络接近的下一个新第三神经网络。当通过第一循环神经网络采样到的第三神经网络劣于当前帕雷托前沿上的第二神经网络结构,就给一个负的反馈值,使第一循环神经网络去采样跟当前第三神经网络远离的下一个新第三神经网络。从而引导服务器从一个性能差的帕雷托前沿演化到一个性能优良的帕雷托前沿。

为进一步理解本方案,请参阅图5,图5为本申请实施例提供是当前帕雷托前沿的一种示意图,图5中箭头的方向指的是帕雷托前沿的更新方向,图5中的坐标系的横轴代表每个第三神经网络的性能指标中的一种性能参数,图4中的坐标系的纵轴代表每个第三神经网络的准确率,不难看出,服务器在非主导排序反馈函数的引导下,由一个性能质量较差的帕雷托前沿演化到一个性能优良的帕雷托前沿。应当理解,此处举例仅为方便理解本方案,不用于限定本方案。

应当理解,此处仅对退火反馈函数和非主导排序反馈函数两种反馈函数进行举例,还可以通过其他反馈函数生成反馈值,具体此处不做限定。

312、服务器根据反馈值梯度更新第一循环神经网络的参数。

本申请的一些实施例中,服务器在获得反馈值之后,可以梯度更新第一循环神经网络的参数,具体的,可以为反馈值为正数,则梯度值为正值;反馈值为负数,则梯度值为负值;反馈值为零,则梯度值为零。

更具体的,服务器是利用更新函数,根据反馈值得到梯度值的,该更新函数具体可以表现为:

其中,θ为第一循环网络的任一个参数的参数值,P(θ)为采样出的第三神经网络对应的概率值,也即第三神经网络中的每个第一神经单元的概率值的和或乘积,R(α;τ,δ)是反馈函数输出的反馈值,

服务器通过更新函数每次第一循环网络中的一个参数值,服务器可以通过更新函数,逐个更新第一循环网络中的每个参数的参数值,以实现梯度更新第一循环神经网络的参数。

本申请实施例中,通过反馈函数来更新第一循环神经网络的参数,也即通过反馈函数控制第一循环神经网络的采样规律,避免了第一循环神经网络随机采样,有利于缩短帕累托前沿的时间。

需要说明的是,在执行完步骤312之后,不是继续执行步骤313,而是重新进入步骤307。

313、服务器从最终帕雷托前沿中选取N个第二神经网络。

本申请的一些实施例中,由于最终帕雷托前沿中包括M个第二神经网络,服务器从M个第二神经网络中选取N个第二神经网络,其中,若定制信息中包括有神经网络的个数指标,则N的取值由客户端决定;若定制信息中不包括神经网络的个数指标在,则服务器可以自主确定N的取值。

若M的取值和N的取值相等,则服务器选取最终帕雷托前沿中的所有第二神经网络;若M的取值大于N的取值,则服务器可以从M个第二神经网络中任意选取N个第二神经网络;也可以按照预设规律将M个第二神经网络分为N份,并从每份中选取一个第二神经网络,具体的,在一种实现方式中,参数量从小到大的顺序对M个第二神经网络进行排序,并将排序后的M个第二神经网络分为N份,从每份中选取一个准确率最高的第二神经网络,进而从N份中获得N个第二神经网络;在另一种实现方式中,还可以为按照所占用内存从小到大的顺序从小到大的顺序对M个第二神经网络进行排序,并将排序后的M个第二神经网络分为N份,从每份中选取一个准确率最高的第二神经网络;在由一种实现方式中,还可以为按照神经网络的处理时长由短到长的顺序对M个第二神经网络进行排序,并将排序后的M个第二神经网络分为N份,从每份中随机选取一个第二神经网络等等,此处不再对其它的选取方式一一进行举例。

314、服务器将N个第二神经网络发送给客户端;

本申请的一些实施例中,服务器在获取到N个第二神经网络之后,可以将N个第二神经网络发送给客户端,客户端接收并展示N个第二神经网络。进一步的,客户端在展示N个第二神经网络的同时,可以也展示每个第二神经网络的性能信息,此处以通过表格展示为例进行说明,请参阅如下表1。

表1

表1中以N的取值为3,性能指标为准确率和占用的内存大小为例进行说明,客户端上展示3个第二神经网络,神经网络A的准确率为百分之九十八,占用的内存大小为28M;神经网络B的准确率为百分之九十六,占用的内存大小为26M;神经网络C的准确率为百分之九十五,占用的内存大小为20M,从而用户可以从前述三个神经网络中进行选择,应当理解,客户端也可以利用折线、柱状图等方式来展示N个第二神经网络,具体此处均不作限定。

315、客户端获取神经网络选择指令。

本申请的一些实施例中,客户端可以在展示N个第二神经网络时,通过第二神经网络的展示界面获取用户输入的神经网络选择指令,其中,神经网络选择指令用于供客户端从N个第二神经网络中选取至少一个第五神经网络。其中,第五神经网络为一个泛指的概念,指的是指的是N个第二神经网络中用户选择的神经网络,对于服务器而言就是N个第二神经网络中客户端想要使用的神经网络。

具体的,可以为用户通过点击或按压第二神经网络的展示图标的方式录入神经网络选择指令,作为示例,例如通过表格的形式展示N个第二神经网络,则可以按压或点击一个第五神经网络所在的数据行来输入神经网络执行令;作为另一示例,例如通过柱状图的形式展示N个第二神经网络,则用户可以通过按压或点击柱状图的方式输入神经网络选择指令。也可以为是通过语音的方式输入神经网络指令,结合表1进行举例,例如通过语音的方式输入“选择神经网络A”,以输入神经网络选择指令等,具体此处不做限定。

316、客户端根据神经网络选择指令生成神经网络选择信息。

本申请的一些实施例中,客户端在根据神经网络选择指令从N个第二神经网络中选取至少一个第五神经网络之后,可以生成神经网络选择信息,其中,神经网络选择信息包括每个第五神经网络的标识信息。在一种情况下的,服务器在向客户端发送N个第二神经网络时,可以为每个第二神经网络分配一个标识信息,则客户端可以直接利用服务器分配的标识信息,每个第五神经网络的标识信息可以为与每个第五神经网络对应的字符编号,作为示例,例如根据每个第五神经网络的生成次序生成的编号,例如“0000001”、“0000028”或其它编号等;作为另一示例,字符编号也可以为“FY000001”、“FL000057”之类的,也即字符编号中含有神经网络的功能指标的首字母缩写。在另一种情况下,若服务器未为每个第二神经网络分配标识信息,则神经网络选择信息中也可以直接携带用户选择的每个第五神经网络,也即神经网络选择信息中携带有每个第五神经网络对应的函数等,应当理解,上述举例仅为方便理解本方案,不用于限定本方案

317、客户端向服务器发送神经网络选择信息。

本申请的一些实施例中,客户端在生成神经网络选择信息之后,可以向服务器发送神经网络选择信息,神经网络选择信息用于指示服务器从N个第二神经网络中选取至少一个第五神经网络,并对至少一个第五神经网络中每个第五神经网络进行迭代训练。

318、服务器根据神经网络选择信息从N个第二神经网络中选取至少一个第五神经网络。

本申请的一些实施例中,服务器在接收到神经网络选择信息之后,可以根据从神经网络选择信息中直接获取至少一个第五神经网络;也可以根据神经网络中携带的标识信息从N个第二神经网络中选取至少一个第五神经网络等,具体此处不做限定。

319、服务器对每个第五神经网络进行迭代训练,直至满足损失函数的收敛条件。

本申请的一些实施例中,服务器在确定至少一个第五神经网络之后,需要对每个第五神经网络进行再次迭代训练,直至满足每个第四损失函数的收敛条件,其中,第四损失函数也是一个泛指的概念,代表对用户选中的第五神经网络进行再次迭代训练时采用的损失函数,第四损失函数的收敛条件比第一损失函数和第二损失函数的收敛条件都要难。

具体的,若执行步骤302和步骤304,则步骤319包括:服务器利用客户端发送的数据集合对第五神经网络进行迭代训练;若不执行步骤302和步骤304,则步骤319包括:服务器利用自主搜集的数据集合对第五神经网络进行迭代训练。

更具体的,此处还介绍了神经网络的训练过程,其中,深度神经网络中的每一层的工作可以用数学表达式

因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objectivefunction),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。

320、服务器将完成迭代训练操作的至少一个第五神经网络发送给客户端。

本申请的一些实施例中,服务器在对每个第五神经网络进行迭代训练完成后,将完成迭代训练操作的至少一个第五神经网络发送给客户端,也即向将训练成熟的至少一个第五神经网络发送给客户端,进而客户端可以直接在客户端所在的终端设备上运行每个第五神经网络,也可以将每个第五神经网络转发给其它应用设备,以在其它应用设备上运行第五神经网络。

本申请实施例中,服务器在将N个第二神经网络发送给客户端之后,客户端可以从N个第二神经网络中选择至少一个第五神经网络,进而服务器对客户端选择的至少一个第五神经网络进行迭代训练之后,再将完成迭代训练操作的至少一个第五神经网络发送给客户端,使得服务器执行迭代训练操作更有针对性,避免计算机资源的浪费。

本申请实施例中,服务器接收客户端发送的定制信息,定制信息中包括待生成的神经网络的功能指标和性能指标,服务器可以根据神经网络的功能指标确定待生成的神经网络的类型,也即可以生成多个满足所述功能指标的第一神经网络,进而可以根据神经网络的性能指标,从多个第一神经网络中选取N个第二神经网络,每个第二神经网络均为满足性能指标的神经网络,从而提供了一种神经网络定制化的方案;此外,由于随着人工智能的不断发展,神经网络的运行设备的形态越来越多,本案的性能指标中包括神经元的数量、神经网络的准确率、神经网络占用的内存大小或神经网络的处理时长中的任意一种或多种指标的组合,从而客户端可以根据神经网络的运行设备的具体形态来确定性能指标为上述指标中的哪些指标,从而有利于扩展本方案的应用场景。

二、直接生成N个第二神经网络

本申请实施例中,请参阅图6,图6为本申请实施例提供的神经网络处理方法的一种流程示意图,本申请实施例提供的神经网络处理方法可以包括:

601、客户端获取定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标。

602、客户端获取数据集合。

603、客户端向服务器发送定制信息。

604、客户端向服务器发送数据集合。

本申请实施例中,步骤601至步骤604的具体实现方式与图3对应实施例中步骤301至步骤304类似,具体可参考图3对应实施例中的描述,此处不再赘述。

605、服务器根据功能指标和性能指标,生成N个第二神经网络。

在一种情况下,服务器可以根据定制信息中的功能指标和性能指标,定制信息中的性能指标为一个或至少两个,则服务器可以利用第一循环神经网络,根据多个第一神经单元,直接生成N个第二神经网络。具体的,服务器可以在获取到定制信息中的性能指标之后,以所述性能指标为目标,对第一循环神经网络进行迭代训练,直至将第一循环神经网络训练称为一个成熟的神经网络,进而直接利用训练成熟的第一循环神经网络,对多个第一神经单元进行采样,以生成N个第二神经网络。

在另一种情况下,定制信息中的性能指标可以为一个,服务器也可以不通过第一循环神经网络来生成第二神经网络,而是以一个功能目标和一个性能指标为目标,直接从多个第一神经单元中挑选用于组建第二神经网络的神经单元,进而生成N个第二神经网络。作为示例,例如功能指标为图像识别,性能指标中只有神经网络的参数量小于50个,多个第一神经单元呈矩阵式排列,所述由多个第一神经单元组成的矩阵有J列,每列有K行,则针对J列中的每一列,服务器可以从K行中选取参数量最少的第一神经单元,来组建第二神经网络,需要说明的是,生成的第二神经网络还是要满足功能指标的要求的,也即即使参数量要尽量要,最后的第二神经网络中也要有卷积层;作为另一示例,例如功能指标为文本翻译,性能指标中只有占用内存低于20M,则可以尽量多的选择单元操作层,应当理解,此处举例仅为证明本方案的可实现性,不用于限定本方案。

606、服务器将N个第二神经网络发送给客户端。

607、客户端获取神经网络选择指令。

608、客户端根据神经网络选择指令生成神经网络选择信息。

609、客户端向服务器发送神经网络选择信息。

610、服务器根据神经网络选择信息从N个第二神经网络中选取至少一个第五神经网络。

611、服务器对每个第五神经网络进行迭代训练,直至满足损失函数的收敛条件。

612、服务器将完成迭代训练操作的至少一个第五神经网络发送给客户端。

本申请实施例中,步骤606至步骤612的具体实现方式与图3对应实施例中步骤316至步骤320类似,具体可参考图3对应实施例中的描述,此处不再赘述。

下面例举一具体的实施例对本申请实施例提供的神经网络处理方法进行详细说明。本实施例中,以功能指标为图像识别、性能指标为神经网络的准确率高于百分之九十,且神经网络的参数量低于50个、神经网络的个数指标为50个,反馈函数采用退火反馈函数为例,进行举例,具体的,请参阅图7,图7为本申请实施例提供的神经网络处理方法服务器生成最终帕累托前沿的的一种流程示意图,方法可以包括:

S1、服务器接收客户端发送的定制信息。

本实施例中,客户端向服务器发送的定制信息中,神经网络的功能指标为图像识别,性能指标分别为神经网络的准确率高于百分之九十,且神经网络的参数量低于两百万个。

S2、服务器生成第四神经网络,第四神经网络中包括多个第一神经单元。

本实施例中,客户端生成一个包括多个第一神经单元的第四神经网络,第四神经网络是一个12层的卷积神经网络,每一层有5个第一神经单元,分别为3×3卷积层、5×5卷积层、平均池化层、最大池化层和单元操作层,服务器将这5个第一神经单元分别记为(0,1,2,3,4)。随机初始化第四神经网络中所有第一神经单元的参数(针对有参数的第一神经单元),并生成一个第一循环神经网络。

S3、服务器对第四神经网络进行初始迭代训练。

本实施例中,服务器从第四神经网络的每一层中的操作随机挑选一个第一神经单元。例如第一层挑0,第二层挑3……直到第12层组成一个子神经网络(0,3,4,2,3,1,2,3,1,0,4,2),计算这个子神经网络的第一损失函数,并根据第一损失函数值计算梯度值,用随机梯度下降法更新这个子神经网络中每个神经单元的参数,重复此步骤2000次,得到初始迭代训练之后的子神经网络中每个神经单元的参数。

S4、服务器利用第一循环神经网络,根据多个第一神经单元,生成第三神经网络。

本实施例中,由于本实施例中选用退火反馈函数,则服务器在初始化第一循环神经网络的参数之后,需要对第一循环神经网络进行预训练,使得第一循环神经网络在初始生成第三神经网络中的神经单元的概率值时,生成的权重值中,对于参数小的神经单元大概率赋予较高的权重。在对第一循环神经网络执行完预训练之后,将S个0的数字序列输入第一循环神经网络中,第一循环神经网络输出5个权重值,再由归一化函数将5个权重值转换为5个概率值,服务器依据这5个概率值从第一层的5个第一神经单元中选取一个第一神经单元,此处以第一层挑0实现第三神经网络层的第一个神经元层的功能为例,服务器需要获取与0对应的S个数字组成的数字序列再次输入到第一循环神经网络中,第一循环神经网络输出5个权重值,再由归一化函数将5个权重值转换为5个概率值,服务器再根据这5个概率值从第四神经网络的第二层中挑选一个第一神经单元,重复前述步骤,直至从第四神经网络的12层中各挑选一个第一神经单元组成第三神经网络,此处以第三神经网络为(1,3,4,0,3,1,2,3,1,0,4,2)为例。

S5、服务器生成第三神经网络的性能信息。

本实施例中,服务器在生成第三神经网络之后,需要生成第三神经网络的参数量,并利用初始迭代训练之后的子神经网络中每个神经单元的参数,初始化第三神经网络的每个神经单元的参数,进而可以利用第二损失函数继续对第三神经网络进行迭代训练50次,并统计第三神经网络的准确率,此处以该第三神经网络的参数量为八十万个,准确率为百分之九十一为例。

S6、服务器判断步骤S4和步骤S5的执行次数是否达到6000次,若是,则进入步骤S10;若不是,则进入步骤S7。

S7、服务器根据第三神经网络的性能信息以及退火反馈函数生成反馈值。

本实施例中,服务器根据第三神经网络的参数量、准确率为百分之九十一和退火反馈函数生成反馈值,其中,退火反馈函数的第一性能参数的信息类型为参数量,第一性能参数的取值为五十万个,第一阈值为四十万个。

将前述数值输入到

S8、服务器增大第一性能参数的取值。

本实施例中,服务器将第一性能参数由五十万增加到五十五万,也即增长步长为五万,从而退火反馈函数中的第一性能参数是一个由小到大慢慢变化的参数。

S9、服务器根据反馈值梯度更新第一循环神经网络的参数。

本实施例中,服务器在利用反馈值更新第一循环神经网络的参数之后,重新进入步骤S4,以继续生成新的第三神经网络,由于反馈值是正的,则服务器生成新的第三神经网络与(1,3,4,0,3,1,2,3,1,0,4,2)较为相似。

S10、服务器生成最终帕雷托前沿。

本实施例中,在服务器确定步骤S4和步骤S5的执行次数是否达到6000次后,服务器可以根据这6000次生成的6000个第三神经网络以及每个第三神经网络的性能信息,生成最终帕累托前沿,进而可以从最终帕累托前沿中挑选50个第二神经网络发送给客户端。应当理解,本实施例中的所有举例均仅为方便理解本方案,不用于限定本方案。

为了对本申请带来的有益效果有进一步地理解,以下结合实验数据对本方案采用的帕雷托前沿生成方法所带来的有益效果做进一步展示,请参阅如下表2。

表2

请参阅表2,表2示出了通过三种方法来获得帕雷托前沿的时间,其中,第一行示出了是通过ENAS(有效神经架构搜索)生成帕雷托前沿中一个第二神经网络的时间,所述一个第二神经网络的参数量以及准确率;第二行和第三行分别示出了通过DPP-NET-PANS(设备相关的帕雷托最优递进式神经网络架构搜索)和本方案生成帕雷托前沿上所有第二神经网络的时间,以及帕雷托前沿中所有第二神经网络的平均参数量和平均准确率,通过表2中的对比可以看出,本方案提供的方法,在高准确率的前提下,获取到的第二神经网络的参数量小,且整体生成帕雷托前沿所使用的时长比较小。

本申请实施例还提供了一种神经网络处理方法,请参阅图8,图8为本申请实施例提供的神经网络处理方法的一种流程示意图,方法可以包括:

801、神经网络处理装置获取神经网络的功能指标和神经网络的性能指标。

在一种情况下,神经网络处理装置可以从客户端出获取神经网络的功能指标和神经网络的性能指标,具体实现步骤与图3对应实施例中的步骤303类似,对于步骤801的具体实现方式可以参阅图3中对步骤303的描述,此处不再赘述;在另一种情况下,当神经网络处理装置想自主生成第一神经网络时,也可以自主生成神经网络的功能指标和神经网络的性能指标等,具体此处不做限定。

802、神经网络处理装置获取第四神经网络,第四神经网络中包括多个第一神经单元。

803、神经网络处理装置对第四神经网络进行初始迭代训练。

804、神经网络处理装置利用第一循环神经网络,根据多个第一神经单元生成第一神经网络。

805、神经网络处理装置生成第一神经网络的性能信息,第一神经网络的性能信息与待生成神经网络的性能指标中包括的信息的类型一致。

806、神经网络处理装置通过对比第一神经网络的性能与当前帕雷托前沿中每个第二神经网络的性能,来更新当前帕雷托前沿。

807、神经网络处理装置判断是否满足第一预设条件,若满足,则进入步骤810,若不满足,则进入步骤808。

808、神经网络处理装置根据第一神经网络的性能信息以及反馈函数生成反馈值。

809、神经网络处理装置根据反馈值梯度更新第一循环神经网络的参数。

本申请实施例中,步骤802至步骤809与图3对应实施例中的步骤305至步骤312类似,对于步骤802至步骤809的具体实现方式式可以参阅图3中对步骤305至步骤312的描述,此处不再一一赘述。

810、神经网络处理装置生成最终帕雷托前沿。

本申请实施例中,当服务器判断确定满足第一预设条件的情况下,可以将通过步骤806获得的当前帕雷托前沿确定为最终帕雷托前沿。通过上述方案,实现了通过反馈函数来更新第一循环神经网络的参数,也即通过反馈函数控制第一循环神经网络的采样规律,避免了第一循环神经网络随机采样,有利于缩短帕累托前沿的时间。

在图1至图8所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体参阅图9,图9为本申请实施例提供的服务器的一种结构示意图。服务器900包括可以包括接收单元901、选取单元902和发送单元903,其中,接收单元901,用于接收客户端发送的定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器900确定神经网络的通用能力,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种指标或多种指标的组合;选取单元902,用于以神经网络的性能指标为目标,从多个第一神经网络中选取N个第二神经网络,其中,多个第一神经网络为服务器900根据功能指标和性能指标生成的,每个第一神经网络的功能均满足功能指标的要求,N为正整数,每个第二神经网络的性能均满足性能指标的要求;发送单元903,用于将N个第二神经网络发送给客户端。

本申请实施例中,接收单元901接收客户端发送的定制信息,定制信息中包括待生成的神经网络的功能指标和性能指标,选取单元902可以根据神经网络的功能指标确定待生成的神经网络的类型,也即可以生成多个满足所述功能指标的第一神经网络,进而可以根据神经网络的性能指标,从多个第一神经网络中选取N个第二神经网络,每个第二神经网络均为满足性能指标的神经网络,从而提供了一种神经网络定制化的方案;此外,由于随着人工智能的不断发展,神经网络的运行设备的形态越来越多,本案的性能指标中包括神经元的数量、神经网络的准确率、神经网络占用的内存大小或神经网络的处理时长中的任意一种或多种指标的组合,从而客户端可以根据神经网络的运行设备的具体形态来确定性能指标为上述指标中的哪些指标,从而有利于扩展本方案的应用场景。

在一种可能的设计中,定制信息中还包括神经网络的个数指标,个数指标为N个,选取单元902具体用于:以神经网络的性能指标为目标,从多个第一神经网络中选取最终帕雷托前沿,最终帕雷托前沿中包括M个第二神经网络,其中,M为正整数,M大于或者等于N;从M个第二神经网络选取N个第二神经网络。

本申请实施例中,用户不仅可以定制神经网络的功能和性能,还可以定制想要的神经网络的数量,进一步提高了神经网络的定制化的精度,有利于增强客户粘度。

在一种可能的设计中,请参阅图10,图10为本申请实施例提供的服务器的一种结构示意图,服务器900还包括:生成单元904,用于利用第一循环神经网络,根据多个第一神经单元生成第三神经网络,第三神经网络为多个第一神经网络中的一个神经网络,第三神经网络中包括至少一个第二神经单元,至少一个第二神经单元包含于多个第一神经单元;选取单元902具体用于:生成第三神经网络的性能信息,第三神经网络的性能信息与神经网络的性能指标中包括的信息的类型一致;通过对比第三神经网络的性能与当前帕雷托前沿中每个第二神经网络的性能,更新当前帕雷托前沿;根据第三神经网络的性能信息以及反馈函数生成反馈值;根据反馈值梯度更新第一循环神经网络的参数。

本申请实施例中,通过反馈函数来更新第一循环神经网络的参数,也即通过反馈函数控制第一循环神经网络的采样规律,避免了第一循环神经网络随机采样,有利于缩短帕累托前沿的时间。

在一种可能的设计中,请参阅图10,服务器900还包括:获取单元905,用于获取第四神经网络,第四神经网络中包括多个第一神经单元;训练单元906,用于对第四神经网络进行初始迭代训练,其中,执行过初始迭代训练的第四神经网络用于初始化第三神经网络;生成单元904具体用于:根据执行过初始迭代训练的第四神经网络中的多个第一神经单元,生成第三神经网络。

本申请实施例中,由于神经网络的参数指标中一般都存在神经网络的准确率指标,而在选取单元902对第三神经网络的准确率进行统计时,需要先对第三神经网络进行迭代训练,再开始统计第三神经网络的准确率,若随机初始化第三神经网络的参数(也即没有提前训练第四神经网络的参数),再对第三神经网络进行迭代训练,来得到第三神经网络的准确率,整个第三神经网络的准确率的统计时长就会较长,而生成单元904需要生成多个第三神经网络,每个第三神经网络都要从随机初始化状态训练到相对成熟的状态,这会导致整个训练时长特别长,而通过上述方式,先对第四神经网络进行初始迭代训练,然后利用执行过初始迭代训练的第四神经网络用于初始化第三神经网络,会大大缩短每个第三神经网络的训练时长,从而提高了本方案中神经网络定制过程的效率。

在一种可能的设计中,第四神经网络包括多个神经元层,每个神经元层中包括L个第一神经单元,其中,L为正整数;生成单元904具体用于:通过第一循环神经网络输出L个数值,每个数值用于代表L个第一神经单元中的一个第一神经单元的权重;通过归一化指数函数将L个数值转换为L个概率值,L个概率值分别与L个第一神经单元对应,其中,归一化指数函数中的温度参数按照余弦函数的规律进行变化;根据L个概率值,从L个第一神经单元选取一个第二神经单元来实现第三神经网络中的一个神经元层的功能。

本申请实施例中,提供了生成第三神经网络的具体实现过程,提高了本方案的可实现性;此外,由于归一化指数函数中的温度参数T越大,第一循环神经网络采样到L个第一神经单元中每个第一神经单元的概率会趋于平均,则生成单元904采样的第三神经网络越随机。而温度参数T越大,生成单元904会根据第一循环神经网络学习到的策略去生成第三神经网络,而T按照余弦函数的规律进行变化,可以避免第一循环神经网络的参数收敛到一个局部最优值而跳不出来,也即保证了最后的N个第二神经网络是从大量的第一神经网络中选取出来的,而不是从局部的少量第一神经网络中选取出来的,从而保证了N个第二神经网络的性能。

在一种可能的设计中,请参阅图10,反馈函数中预先设置有第一性能参数以及第一阈值,第一性能参数为性能指标中除神经网络的准确率之外的任一种指标;生成单元904具体用于:根据第三神经网络的准确率、第三神经网络的第二性能参数以及反馈函数生成反馈值,其中,在第二性能参数与第一性能参数的差值小于第一阈值的情况下,第三神经网络的准确率与反馈值之间的关系为正相关,第二性能参数与第一性能参数的差值与反馈值之间的关系为负相关,在第二性能参数与第一性能参数的差值大于第一阈值的情况下,反馈值的取值为零;服务器900还包括:增大单元907,用于增大第一性能参数。

在一种可能的设计中,生成单元904具体用于:将第三神经网络的性能与当前帕雷托前沿中的至少一个第二神经网络的性能进行对比;在第三神经网络的性能优于当前帕雷托前沿中的P个第二神经网络的情况下,根据P以及反馈函数生成反馈值,其中,P为正整数,反馈值为正数,P越大,反馈值越大;在第三神经网络的性能劣于当前帕雷托前沿中的Q个第二神经网络的情况下,根据Q以及反馈函数生成反馈值,其中,Q为正整数,反馈值为负数,Q越大,反馈值越小。

本申请实施例中,当通过第一循环神经网络采样到的第三神经网络优于当前帕雷托前沿上的第二神经网络结构,就给一个正的反馈值,鼓励第一循环神经网络去采样跟当前第三神经网络接近的下一个新第三神经网络;当通过第一循环神经网络采样到的第三神经网络劣于当前帕雷托前沿上的第二神经网络结构,就给一个负的反馈值,使第一循环神经网络去采样跟当前第三神经网络远离的下一个新第三神经网络。从而选取单元902能够实现从一个性能差的帕雷托前沿演化到一个性能优良的帕雷托前沿。

在一种可能的设计中,请参阅图10,接收单元901,还用于接收客户端发送的神经网络选择信息;选取单元902,还用于根据神经网络选择信息从N个第二神经网络中选取至少一个第五神经网络;服务器900还包括:训练单元906,用于对每个第五神经网络进行迭代训练,直至满足损失函数的收敛条件;发送单元903,用于将完成迭代训练操作的至少一个第五神经网络发送给客户端。

本申请实施例中,发送单元903在将N个第二神经网络发送给客户端之后,接收单元901可以根据客户端发送的神经网络选择信息从N个第二神经网络中选择至少一个第五神经网络,进而训练单元906对客户端选择的至少一个第五神经网络进行迭代训练之后,再由发送单元903将完成迭代训练操作的至少一个第五神经网络发送给客户端,使得服务器执行迭代训练操作更有针对性,避免计算机资源的浪费。

在一种可能的设计中,接收单元901,还用于接收客户端发送的数据集合,数据集合中的数据类型与功能指标具有关联关系,数据集合用于供服务器对神经网络执行迭代训练操作。

本申请实施例中,相对于由服务器根据神经网络的功能目标自主获取数据集合,由接收单元901接收客户端发送的对神经网络进行迭代训练操作时的数据集合,会使得神经网络的迭代训练过程更具有针对性,从而经过迭代训练后的神经网络的准确率更高。

需要说明的是,服务器900中各模块/单元之间的信息交互、执行过程等内容,与本申请中图3对应的各个方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

本申请实施例还提供了另一种服务器,请参阅图11,图11为本申请实施例提供的服务器的一种结构示意图,服务器1100包括:接收单元1101、生成单元1102和发送单元1103,其中,接收单元1101,用于接收客户端发送的定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种指标或多种指标的组合;生成单元1102,用于根据功能指标和性能指标生成N个第二神经网络;发送单元1103,用于将N个第二神经网络发送给客户端。

在一种可能的设计中,定制信息中还包括神经网络的个数指标,个数指标为N个。

在一种可能的设计中,接收单元1101,还用于接收客户端发送的神经网络选择信息;选取单元1104,还用于根据神经网络选择信息从N个第二神经网络中选取至少一个第五神经网络;服务器还包括:训练单元1105,用于对每个第五神经网络进行迭代训练,直至满足损失函数的收敛条件;发送单元1103,用于将完成迭代训练操作的至少一个第五神经网络发送给客户端。

在一种可能的设计中,接收单元1101,还用于接收客户端发送的数据集合,数据集合中的数据类型与功能指标具有关联关系,数据集合用于供服务器对神经网络执行迭代训练操作。

需要说明的是,服务器1100中各模块/单元之间的信息交互、执行过程等内容,与本申请中图6对应的各个方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

本申请实施例还提供一种通信设备,请参阅图12,图12为本申请实施例提供的通信设备的一种结构示意图,通信设备1200上部署有图6对应实施例中的客户端,通信设备1200可以包括:获取单元1201、发送单元1202和接收单元1203,其中,获取单元1201,用于获取定制信息,定制信息中包括神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种或多种指标的组合;发送单元1202,用于向服务器发送定制信息,定制信息用于供服务器根据定制信息获取N个第二神经网络,其中,N为正整数,每个第二神经网络的功能均满足功能指标的要求,每个第二神经网络的性能均满足性能指标的要求;接收单元1203,用于接收服务器发送的N个第二神经网络。

本申请实施例中,获取单元1201在获取用户录入的定制信息之后,发送单元1202向服务器发送的定制信息,定制信息中包括待生成的神经网络的功能指标和性能指标,从而接收单元1203可以接收到N个第二神经网络,每个第二神经网络均为满足性能指标的神经网络,通过上述方式,提供了一种神经网络定制化的方案;此外,由于随着人工智能的不断发展,神经网络的运行设备的形态越来越多,本案的性能指标中包括神经元的数量、神经网络的准确率、神经网络占用的内存大小或神经网络的处理时长中的任意一种或多种指标的组合,从而客户端可以根据神经网络的运行设备的具体形态来确定性能指标为上述指标中的哪些指标,从而有利于扩展本方案的应用场景。

在一种可能的设计中,定制信息中还包括神经网络的个数指标,个数指标为N个,神经网络的个数指标用于供服务器确定向客户端发送的第二神经网络的数量。

本申请实施例中,用户不仅可以定制神经网络的功能和性能,还可以定制想要的神经网络的数量,进一步提高了神经网络的定制化的精度,有利于增强客户粘度。

在一种可能的设计中,获取单元1201,还用于获取神经网络选择指令,神经网络选择指令用于供客户端从N个第二神经网络中选取至少一个第五神经网络;通信设备还包括:生成单元1204,用于根据神经网络选择指令生成神经网络选择信息,神经网络选择信息用于指示服务器对至少一个第五神经网络中每个第五神经网络进行迭代训练;发送单元1202,还用于向服务器发送神经网络选择信息;接收单元1203,还用于接收服务器发送的完成迭代训练操作的至少一个第五神经网络。

本申请实施例中,获取单元1201可以接收用户从N个第二神经网络中选择至少一个第五神经网络的神经网络选择指令,发送单元1202将用于指示服务器对至少一个第五神经网络中每个第五神经网络进行迭代训练的神经网络选择信息发送给服务器,从而接收单元1203可以接收到完成迭代训练操作的至少一个第五神经网络,使得服务器执行迭代训练操作更有针对性,避免计算机资源的浪费。

在一种可能的设计中,发送单元1202,还用于向服务器发送数据集合,数据集合中的数据类型与功能指标具有关联关系,数据集合用于供服务器对神经网络执行迭代训练操作。

本申请实施例中,相对于由服务器根据神经网络的功能目标自主获取数据集合,发送单元1202向服务器发送对神经网络进行迭代训练操作时的数据集合,会使得神经网络的迭代训练过程更具有针对性,从而经过迭代训练后的神经网络的准确率更高。

需要说明的是,通信设备1200中各模块/单元之间的信息交互、执行过程等内容,与本申请中图6对应的各个方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

本申请实施例还提供一种神经网络处理装置,请参阅图13,图13为本申请实施例提供的神经网络处理装置的一种结构示意图,神经网络处理装置1300可以包括:获取单元1301、生成单元1302和更新单元1303,其中,获取单元1301,用于获取神经网络的功能指标和神经网络的性能指标,功能指标用于供服务器确定神经网络的通用能力,性能指标中包括神经网络的准确率、神经网络的参数量、神经网络占用的内存大小、神经网络的处理时长或每秒浮点运算次数中的任意一种或多种指标的组合;生成单元1302,用于利用第一循环神经网络,根据多个第一神经单元生成第一神经网络,第一神经网络的功能满足功能指标的要求,第一神经网络中包括至少一个第二神经单元,至少一个第二神经单元包含于多个第一神经单元;生成单元1302,还用于服务器生成第一神经网络的性能信息,第一神经网络的性能信息与待生成神经网络的性能指标中包括的信息的类型一致;更新单元1303,还用于通过对比第一神经网络的性能与当前帕雷托前沿中每个第二神经网络的性能,来更新当前帕雷托前沿,其中,每个第二神经网络的性能均满足性能指标的要求;生成单元1302,还用于根据第一神经网络的性能信息以及反馈函数生成反馈值;更新单元1303,还用于根据反馈值梯度更新第一循环神经网络的参数;生成单元1302和更新单元1303重复执行上述第一神经网络生成操作、第一神经网络的性能信息生成操作、当前帕雷托前沿更新操作以及第一循环神经网络参数更新操作,直至产生最终帕雷托前沿。

在一种可能的设计中,获取单元1301,还用于获取第四神经网络,第四神经网络中包括多个第一神经单元;神经网络处理装置还包括:训练单元1304,用于对第四神经网络进行初始迭代训练,其中,执行过初始迭代训练的第四神经网络用于初始化第三神经网络;生成单元1302具体用于:根据执行过初始迭代训练的第四神经网络中的多个第一神经单元,生成第三神经网络。

在一种可能的设计中,第四神经网络包括多个神经元层,每个神经元层中包括L个第一神经单元,其中,L为正整数;生成单元1302具体用于:通过第一循环神经网络输出L个数值,每个数值用于代表L个第一神经单元中的一个第一神经单元的权重;通过归一化指数函数将L个数值转换为L个概率值,L个概率值分别与L个第一神经单元对应,其中,归一化指数函数中的温度参数按照余弦函数的规律进行变化;根据L个概率值,从L个第一神经单元选取一个第二神经单元来实现第三神经网络中的一个神经元层的功能。

在一种可能的设计中,反馈函数中预先设置有第一性能参数以及第一阈值,第一性能参数为性能指标中除神经网络的准确率之外的任一种指标;生成单元1302具体用于:根据第三神经网络的准确率、第三神经网络的第二性能参数以及反馈函数生成反馈值,其中,在第二性能参数与第一性能参数的差值小于第一阈值的情况下,第三神经网络的准确率与反馈值之间的关系为正相关,第二性能参数与第一性能参数的差值与反馈值之间的关系为负相关,在第二性能参数与第一性能参数的差值大于第一阈值的情况下,反馈值的取值为零;服务器还包括:增大单元,用于增大第一性能参数。

在一种可能的设计中,生成单元1302具体用于:将第三神经网络的性能与当前帕雷托前沿中的至少一个第二神经网络的性能进行对比;在第三神经网络的性能优于当前帕雷托前沿中的P个第二神经网络的情况下,根据P以及反馈函数生成反馈值,其中,P为正整数,反馈值为正数,P越大,反馈值越大;在第三神经网络的性能劣于当前帕雷托前沿中的Q个第二神经网络的情况下,根据Q以及反馈函数生成反馈值,其中,Q为正整数,反馈值为负数,Q越大,反馈值越小。

需要说明的是,神经网络处理装置1300中各模块/单元之间的信息交互、执行过程等内容,与本申请中图8对应的各个方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

本申请实施例还提供了一种服务器,请参阅图14,图14是本申请实施例提供的服务器一种结构示意图,服务器1400上可以部署有图9和图10对应实施例中所描述的服务器900,用于实现图9和图10对应实施例中服务器900的功能,或者,服务器1400上可以部署有图11对应实施例中所描述的服务器1100,用于实现图11对应实施例中服务器1100的功能,或者,服务器1400上可以部署有图13对应实施例中所描述的神经网络处理装置1300,用于实现图13对应实施例中神经网络处理装置1300的功能。具体的,服务器1400由一个或多个服务器实现,服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1422可以设置为与存储介质1430通信,在服务器1400上执行存储介质1430中的一系列指令操作。

服务器1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

本申请实施例中,中央处理器1422,用于执行图3对应实施例中的服务器执行的神经网络处理方法,或者,用于执行图6对应实施例中服务器执行的神经网络处理方法,或者,用于执行图8对应实施例中神经网处理装置执行的神经网络处理方法。需要说明的是,对于中央处理器1422执行神经网络处理方法的具体实现方式,均可以参考图3、图6以及图8对应的各个方法实施例中的叙述,此处不再一一赘述。

本申请实施例还提供了一种通信设备,请参阅图15,图15为本申请实施例提供的通信设备的一种结构示意图,其中,通信设备1500上可以部署有图12对应实施例中所描述的通信设备1200,用于实现图12对应实施例中通信设备1200的功能。具体的,通信设备1500包括:接收器1501、发射器1502、处理器1503和存储器1504(其中通信设备1500中的处理器1503的数量可以一个或多个,图15中以一个处理器为例),其中,处理器1503可以包括应用处理器15031和通信处理器15032。在本申请的一些实施例中,接收器1501、发射器1502、处理器1503和存储器1504可通过总线或其它方式连接。

存储器1504可以包括只读存储器和随机存取存储器,并向处理器1503提供指令和数据。存储器1504的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1504存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。

处理器1503控制通信设备的操作。具体的应用中,通信设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。

上述本申请实施例揭示的方法可以应用于处理器1503中,或者由处理器1503实现。处理器1503可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1503中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1503可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1503可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1504,处理器1503读取存储器1504中的信息,结合其硬件完成上述方法的步骤。

接收器1501可用于接收输入的数字或字符信息,以及产生与通信设备的相关设置以及功能控制有关的信号输入。发射器1502可用于通过第一接口输出数字或字符信息;发射器1502还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1502还可以包括显示屏等显示设备。

本申请实施例中,应用处理器15031,用于执行图3对应实施例中的客户端执行的神经网络处理方法,或者,用于执行图6对应实施例中客户端执行的神经网络处理方法。需要说明的是,对于应用处理器15031执行神经网络处理方法的具体实现方式,均可以参考图3和图6对应的各个方法实施例中的叙述,此处不再一一赘述。

本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3至图5所示实施例描述的方法中服务器所执行的步骤,或者,使得计算机执行如前述图6所示实施例描述的方法中服务器所执行的步骤,或者,使得计算机执行如前述图8所示实施例描述的方法中服务器所执行的步骤。

本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3至图5所示实施例描述的方法中客户端所执行的步骤,或者,使得计算机执行如前述图6所示实施例描述的方法中客户端所执行的步骤。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图3至图5所示实施例描述的方法中服务器所执行的步骤,或者,使得计算机执行如前述图6所示实施例描述的方法中服务器所执行的步骤,或者,使得计算机执行如前述图8所示实施例描述的方法中服务器所执行的步骤。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图3至图5所示实施例描述的方法中客户端所执行的步骤,或者,使得计算机执行如前述图6所示实施例描述的方法中客户端所执行的步骤。

本申请实施例提供的执行设备、训练设备、终端设备或通信设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使服务器内的芯片执行上述图3至图5所示实施例描述的神经网络处理方法,或者,以使服务器内的芯片执行上述图6所示实施例描述的神经网络处理方法,或者,以使服务器内的芯片执行上述图8所示实施例描述的神经网络处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。

具体的,请参阅图16,图16为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 160,NPU 160作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路160,通过控制器1604控制运算电路1603提取存储器中的矩阵数据并进行乘法运算。

在一些实现中,运算电路1603内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路1603是二维脉动阵列。运算电路1603还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1603是通用的矩阵处理器。

举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1602中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1601中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1608中。

统一存储器1606用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)1605,DMAC被搬运到权重存储器1602中。输入数据也通过DMAC被搬运到统一存储器1606中。

BIU为Bus Interface Unit即,总线接口单元1610,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)1609的交互。

总线接口单元1610(Bus Interface Unit,简称BIU),用于取指存储器1609从外部存储器获取指令,还用于存储单元访问控制器1605从外部存储器获取输入矩阵A或者权重矩阵B的原数据。

DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1606或将权重数据搬运到权重存储器1602中或将输入数据数据搬运到输入存储器1601中。

向量计算单元1607包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。

在一些实现中,向量计算单元1607能将经处理的输出的向量存储到统一存储器1606。例如,向量计算单元1607可以将线性函数和/或非线性函数应用到运算电路1603的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1607生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1603的激活输入,例如用于在神经网络中的后续层中的使用。

控制器1604连接的取指存储器(instruction fetch buffer)1609,用于存储控制器1604使用的指令;

统一存储器1606,输入存储器1601,权重存储器1602以及取指存储器1609均为On-Chip存储器。外部存储器私有于该NPU硬件架构。

其中,图3、图6和图8所示的循环神经网络中各层的运算可以由运算电路1603或向量计算单元1607执行。

其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CLU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

相关技术
  • 一种基于卷积神经网络的图像处理方法、装置及相关设备
  • 一种神经网络处理器、数据处理方法及相关设备
技术分类

06120112235560