网络模型的运行方法及相关产品与流程

文档序号:16807460发布日期:2019-02-10 13:11阅读:187来源:国知局
网络模型的运行方法及相关产品与流程

本申请涉及信息处理技术领域,具体涉及一种网络模型的运行方法及相关产品。



背景技术:

随着信息技术的不断发展和人们日益增长的需求,人们对信息及时性的要求越来越高了。网络模型例如神经网络模型随着技术的发展应用的越来越广泛,对于计算机、服务器等设备而言,其对网络模型执行训练以及运算的均能够实现,由于现有的神经网络并非所有平台均能够完成训练功能,这样就存在训练好的网络模型转平台应用的方案,这样就无法保证转用以后能够适应新的硬件结构,导致平台计算精度降低,影响用户体验度。

申请内容

本申请实施例提供了一种网络模型的运行方法及相关产品,可以实现网络模型的模拟运行和真实硬件环境运行,模拟运行可以提前试运行网络模型,提高计算精度以及用户体验度。真实硬件环境运行可以直接部署网络模型于目标硬件平台,执行高性能计算。

第一方面,提供一种网络模型的运行方法,所述方法包括如下步骤:

接收网络模型编译器发送的权值数据组;

依据该权值数据组对网络模型的n层权值数据进行更新得到更新后的网络模型;

提取预设数据,将该预设数据作为输入数据输入到更新后的网络模型进行运算得到输出结果,将该输出结果展示。

第二方面,提供一种网络模型的运行平台,所述网络模型的运行平台包括:

收发单元,用于接收网络模型编译器发送的权值数据组;

更新单元,用于依据该权值数据组对网络模型的n层权值数据进行更新得到更新后的网络模型;

处理单元,用于提取预设数据,将该预设数据作为输入数据输入到更新后的网络模型进行运算得到输出结果,将该输出结果展示。

第三方面,提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行第二方面所述的方法。

第四方面,提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行第二方面所述的方法。

本申请提供的技术方案在进行网络模型的更新以后,对该网络模型进行模拟运行得到输出结果,然后展示该输出结果,这样用户可以通过该输出结果来判断该网络模型是否适合该对应的硬件结构,这样可以提高用户体验度。真实硬件环境运行可以直接部署网络模型于目标硬件平台,执行高性能计算。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种网络模型的运行方法的流程示意图。

图2是本申请一个实施例提供的网络模型的运行平台的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

模拟人类实际神经网络的数学方法问世以来,人们已慢慢习惯了把这种人工神经网络直接称为神经网络。神经网络在系统辨识、模式识别、智能控制等领域有着广泛而吸引人的前景,特别在智能控制中,人们对神经网络的自学习功能尤其感兴趣,并且把神经网络这一重要特点看作是解决自动控制中控制器适应能力这个难题的关键钥匙之一。

神经网络(neuralnetworks,nn)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统。神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。神经网络的发展与神经科学、数理科学、认知科学、计算机科学、人工智能、信息科学、控制论、机器人学、微电子学、心理学、光计算、分子生物学等有关,是一门新兴的边缘交叉学科。

神经网络的基础在于神经元。

神经元是以生物神经系统的神经细胞为基础的生物模型。在人们对生物神经系统进行研究,以探讨人工智能的机制时,把神经元数学化,从而产生了神经元数学模型。

大量的形式相同的神经元连结在—起就组成了神经网络。神经网络是一个高度非线性动力学系统。虽然,每个神经元的结构和功能都不复杂,但是神经网络的动态行为则是十分复杂的;因此,用神经网络可以表达实际物理世界的各种现象。

神经网络模型是以神经元的数学模型为基础来描述的。人工神经网络(artificialneuralnetwork)是对人类大脑系统的一阶特性的一种描述。简单地讲,它是一个数学模型。神经网络模型由网络拓扑.节点特点和学习规则来表示。神经网络对人们的巨大吸引力主要包括:并行分布处理、高度鲁棒性和容错能力、分布存储及学习能力、能充分逼近复杂的非线性关系。

在控制领域的研究课题中,不确定性系统的控制问题长期以来都是控制理论研究的中心主题之一,但是这个问题一直没有得到有效的解决。利用神经网络的学习能力,使它在对不确定性系统的控制过程中自动学习系统的特性,从而自动适应系统随时间的特性变异,以求达到对系统的最优控制;显然这是一种十分振奋人心的意向和方法。

人工神经网络的模型现在有数十种之多,应用较多的典型的神经网络模型包括bp神经网络、hopfield网络、art网络和kohonen网络。

参阅图1,图1为本申请提供的一种网络模型的运行方法,该方法由神经网络芯片来执行,该神经网络芯片具体可以包括:专门的神经网络芯片,例如ai芯片,当然在实际应用中,还可以包括:通用的处理芯片例如cpu或fpga等,本申请并不限制上述神经网络芯片的具体表现形式,如图1所示,上述方法包括如下步骤:

步骤s101、接收网络模型编译器发送的权值数据组;

上述步骤s101的接收网络模型变压器发送的权值数据组的接收方式可以有多种,例如,在本申请一种可选的技术方案中,可以通过无线方式接收,包括但不限于:蓝牙、wifi等等方式,当然,在本申请另一种可选的技术方案中,可以通过有线方式接收,包括但不限于,总线方式、端口方式或引脚方式。

步骤s102、依据该权值数据组对网络模型的n层权值数据进行更新得到更新后的网络模型;

上述步骤s102的实现方法具体可以包括:

提取权值数据组内每层对应的权值数据,将每层对应的权值数据替换网络模型的原始权值数据。

步骤s103、提取预设数据,将该预设数据作为输入数据输入到更新后的网络模型进行运算得到输出结果,将该输出结果展示。

上述步骤中预设数据可以为标记好的数据,该数据可以存储在芯片的软件内存中。

上述步骤s103的实现方法具体可以为:

提取预设数据,将该预设数据作为输入数据输入到更新后的网络模型调用软件内存进行运算得到输出结果。

上述步骤s103的实现方法具体还可以包括:

遍历网络模型的所有计算节点,导入权值数据组内的参数值,在软件内存内预留存储空间,按照计算的顺序遍历全部计算节点,涉及异行计算的调度策略,根据调度策略依据调用指定节点的计算函数进行计算,并收集结果得到输出结果。

本申请提供的技术方案在进行网络模型的更新以后,对该网络模型进行模拟运行得到输出结果,然后展示该输出结果,这样用户可以通过该输出结果来判断该网络模型是否适合该对应的硬件结构,这样可以提高用户体验度。

下面介绍一下上述技术方案的细化方案,对于神经网络模型来说,其分为两个大的部分,分别为训练和正向运算,对于训练即是对神经网络模型进行优化的过程,具体的实现方式可以包括:将大量的标注好的样本(一般为50以上的样本)依次输入原始的神经网络模型(此时的权值数据组为初始数值)执行多次迭代运算对初始权值进行更新,每次迭代运算均包括:n层正向运算以及n层反向运算,n层反向运算的权值梯度更新对应层的权值,经过多个样本的计算即能够实现对权值数据组的多次更新以完成神经网络模型的训练,完成训练的神经网络模型接收待计算的数据,将该待计算的数据与训练好的权值数据组执行n层正向运算得到正向运算的输出结果,这样对输出结果进行分析即能够得到该神经网络的运算结果,如该神经网络模型如果为人脸识别的神经网络模型,那么其运算结果看为匹配或不匹配。

对于神经网络模型的训练其需要很大的计算量,因为对于n层正向运算以及n层反向运算,任意一层的运算量均涉及到很大的计算量,以人脸识别神经网络模型为例,每层运算大部分为卷积的运算,卷积的输入数据均是上千行和上千列,那么对于这么大的数据的一次卷积运算的乘积运算可能能够达到106次,这对处理器的要求是很高的,需要花费很大的开销来执行此类运算,更何况这种运算需要经过多次的迭代以及n层,并且每个样本均需要计算一遍,就更加的提高了计算开销,这种计算开销目前通过fpga是无法实现的,过多的计算开销以及功耗需要很高的硬件配置,这样的硬件配置的成本对于fpga设备来说很显然是不现实的,所以对于fpga来说,其是通过配置权值数据组来完成神经网络模型的训练的,但是对于fpga设备,其是否适应该配置权值数据组用户无法获知,这里将一个预设的数据执行芯片内部的运算,即调用软内存的方式来实现对网络模型的运算,这样即能够依据输出结果来确定是否适合,从而提高用户体验度。

本申请还提供一种网络模型的运行平台,参阅图2,所述网络模型的运行平台包括:

收发单元201,用于接收网络模型编译器发送的权值数据组;

上述收发单元201的接收网络模型变压器发送的权值数据组的接收方式可以有多种,例如,在本申请一种可选的技术方案中,可以通过无线方式接收,包括但不限于:蓝牙、wifi等等方式,当然,在本申请另一种可选的技术方案中,可以通过有线方式接收,包括但不限于,总线方式、端口方式或引脚方式。

更新单元202,用于依据该权值数据组对网络模型的n层权值数据进行更新得到更新后的网络模型;

处理单元203,用于提取预设数据,将该预设数据作为输入数据输入到更新后的网络模型进行运算得到输出结果,将该输出结果展示。

本申请提供的技术方案在进行网络模型的更新以后,对该网络模型进行模拟运行得到输出结果,然后展示该输出结果,这样用户可以通过该输出结果来判断该网络模型是否适合该对应的硬件结构,这样可以提高用户体验度。

可选的,

更新单元202,具体用于提取权值数据组内每层对应的权值数据,将每层对应的权值数据替换网络模型的原始权值数据以得到更新后的网络模型。

可选的,

处理单元203,具体用于将该预设数据作为输入数据输入到更新后的网络模型调用软件内存进行运算得到输出结果。

处理单元203,具体用于遍历网络模型的所有计算节点,导入权值数据组内的参数值,在软件内存内预留存储空间,按照计算的顺序遍历全部计算节点,涉及异行计算的调度策略,根据调度策略依据调用指定节点的计算函数进行计算,并收集结果得到输出结果。

本申请还提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如图1所示的方法以及该方法的细化方案。

本申请还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如图1所示的方法以及该方法的细化方案。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取器(英文:randomaccessmemory,简称:ram)、磁盘或光盘等。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1