会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 人工智能 / 人工智能 / 机器学习 / 人工神经网络 / 前馈神经网络 / 多层感知器 / 输出层 / 一种面向人工智能计算的神经网络数据串行流水处理方法

一种面向人工智能计算的神经网络数据串行流水处理方法

阅读:585发布:2021-03-01

IPRDB可以提供一种面向人工智能计算的神经网络数据串行流水处理方法专利检索,专利查询,专利分析的服务。并且本发明涉及一种面向人工智能计算的神经网络数据串行流水处理方法,包括:神经网络第一层的层数据处理模块接收到初始数据后,进行层内并行运算;中间层的层数据处理模块接收到上一层串行输出的运算结果后,进行层内并行运算;最后层的层数据处理模块接收到上一层串行输出的运算结果后,进行层内并行运算,并串行输出运算结果;若多次输入初始数据,则所有层数据处理模块对多次输入的初始数据进行流水处理。本发明通过将神经网络每层分别对应不同的层数据处理模块,每个层数据处理模块对本层数据进行层内并行运算,不与外部交互,减少了不断从外部存储读写数据和参数产生大量功耗和延迟的问题,同时对多次输入数据,可进行流水处理,提高神经网络数据的处理效率。,下面是一种面向人工智能计算的神经网络数据串行流水处理方法专利的具体信息内容。

1.一种面向人工智能计算的神经网络数据串行流水处理方法,其特征在于,包括:神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算,并串行输出运算结果;

神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算,并串行输出运算结果;

神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算,并串行输出运算结果;

若多次向所述神经网络输入初始数据,则所述神经网络第一层的层数据处理模块、神经网络中间层的层数据处理模块以及神经网络最后层的层数据处理模块对多次输入的初始数据进行流水处理。

2.根据权利要求1所述的方法,其特征在于,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,所述方法还包括:所述神经网络中间层的层数据处理模块判断接收到的串行数据是否满足层内并行运算的预设最低条件;若满足,则执行所述对本身所属层的层数据进行层内并行运算,并串行输出运算结果的步骤。

3.根据权利要求1所述的方法,其特征在于,所述神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算后,所述方法还包括:所述神经网络第一层的层数据处理模块存储运算结果;

相应地,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算后,所述方法还包括:所述神经网络中间层的层数据处理模块存储运算结果;

相应地,所述神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算后,所述方法还包括:所述神经网络最后层的层数据处理模块存储运算结果。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述神经网络第一层的层数据处理模块接收到层数据配置信息后,对第一层的层数据进行配置;

所述神经网络中间层的层数据处理模块接收到层数据配置信息后,对本身所属层的层数据进行配置;

所述神经网络最后层的层数据处理模块接收到层数据配置信息后,对最后层的层数据进行配置。

5.根据权利要求1所述的方法,其特征在于,所述层内并行运算为核间并行运算。

说明书全文

一种面向人工智能计算的神经网络数据串行流水处理方法

技术领域

[0001] 本发明实施例涉及计算机技术领域,具体涉及一种面向人工智能计算的神经网络数据串行流水处理方法。

背景技术

[0002] 神经网络是人工智能领域中应用最多的一种工具,神经网络的种类有多种,以深度卷积神经网络为例,深度卷积神经网络不同的模型具有不同层数,但主要计算类型有六种方式:全连接、卷积、池化、非线性、向量运算和矩阵加,这六种方式属于成熟技术,本文不再赘述。
[0003] 神经网络模型的计算方式本质都是小矩阵的乘加运算,巨大的并行度带来巨大数据量,不断从外部存储读写数据和参数是其最大的瓶颈,将产生大量功耗和延迟。
[0004] 上述对问题的发现过程的描述,仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

发明内容

[0005] 为了解决现有技术存在的问题,本发明的至少一个实施例提供了一种面向人工智能计算的神经网络数据串行流水处理方法。
[0006] 本发明实施例公开一种面向人工智能计算的神经网络数据串行流水处理方法,包括:
[0007] 神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算,并串行输出运算结果;
[0008] 神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算,并串行输出运算结果;
[0009] 神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算,并串行输出运算结果;
[0010] 若多次向所述神经网络输入初始数据,则所述神经网络第一层的层数据处理模块、神经网络中间层的层数据处理模块以及神经网络最后层的层数据处理模块对多次输入的初始数据进行流水处理。
[0011] 可选的,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,所述方法还包括:
[0012] 所述神经网络中间层的层数据处理模块判断接收到的串行数据是否满足层内并行运算的预设最低条件;若满足,则执行所述对本身所属层的层数据进行层内并行运算,并串行输出运算结果的步骤。
[0013] 可选的,所述神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算后,所述方法还包括:
[0014] 所述神经网络第一层的层数据处理模块存储运算结果;
[0015] 相应地,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算后,所述方法还包括:
[0016] 所述神经网络中间层的层数据处理模块存储运算结果;
[0017] 相应地,所述神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算后,所述方法还包括:
[0018] 所述神经网络最后层的层数据处理模块存储运算结果。
[0019] 可选的,所述方法还包括:
[0020] 所述神经网络第一层的层数据处理模块接收到层数据配置信息后,对第一层的层数据进行配置;
[0021] 所述神经网络中间层的层数据处理模块接收到层数据配置信息后,对本身所属层的层数据进行配置;
[0022] 所述神经网络最后层的层数据处理模块接收到层数据配置信息后,对最后层的层数据进行配置。
[0023] 可选的,所述层内并行运算为核间并行运算。
[0024] 可见,本发明实施例的至少一个实施例中,通过将神经网络每层分别对应不同的层数据处理模块,每个层数据处理模块对本层数据进行层内并行运算,不与外部交互,减少了运算过程中不断从外部存储读写数据和参数产生大量功耗和延迟的问题,同时对多次输入数据,可进行流水处理,从而提高了神经网络数据的处理效率。
[0025] 可见,本发明实施例的至少一个实施例中,每个层数据处理模块对本层数据进行层内并行运算,运算过程中本层数据均在本层数据处理模块中存储,减少了运算过程中不断从外部存储读写数据和参数产生大量功耗和延迟的问题。

附图说明

[0026] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0027] 图1为本发明实施例提供的一种面向人工智能计算的神经网络数据串行流水处理方法流程图。

具体实施方式

[0028] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029] 如图1所示,本发明实施例公开一种面向人工智能计算的神经网络数据串行流水处理方法,可包括如下步骤101至104:
[0030] 101、神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算,并串行输出运算结果。
[0031] 102、神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算,并串行输出运算结果。
[0032] 103、神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算,并串行输出运算结果。
[0033] 本实施例中,串行输出可理解为将先运算出的数据先输出,将后运算出的数据后输出,而非将本层数据全部运算完成后统一输出。
[0034] 104、若多次向所述神经网络输入初始数据,则所述神经网络第一层的层数据处理模块、神经网络中间层的层数据处理模块以及神经网络最后层的层数据处理模块对多次输入的初始数据进行流水处理。
[0035] 本实施例中,神经网络中间层的层数据处理模块可以有多个,根据神经网络的层数确定,若神经网络有N层,则神经网络中间层的层数据处理模块有N-2个,N≥3。
[0036] 本实施例中,神经网络的层数和层数据处理模块的个数相同,但是考虑到神经网络的层数通常较多,而神经网络的输入数据和输出数据都很少,且神经网络本身的参数和处理中的中间数据数量巨大,为了减少参数读取和层间数据传输,可对神经网络的层进行分组,例如可将M层神经网络分成N组,M>N,分组依据可以根据神经网络内部的参数数据大小、计算类型以及层间交互数据量等因素分组,例如,将连续的卷积、非线性和池化三层归到同一组。每组对应一个层数据处理模块,不同组对应不同的层数据处理模块。
[0037] 本实施例中,对多次输入的初始数据进行流水处理,例如,若两次输入初始数据,则流水处理的部分过程为:神经网络第二层对应的层数据处理模块处理第一次输入的初始数据的第二层时,神经网络第一层对应的层数据处理模块开始处理第二次输入的初始数据的第一层。流水处理的完整过程与流水处理的部分过程类似,在此不再赘述。
[0038] 本实施例中,通过流水处理方式使得中间数据边产生边使用,减少了缓存的中间数据数量。
[0039] 可见,本实施例公开的神经网络数据串行流水处理方法,通过将神经网络每层分别对应不同的层数据处理模块,每个层数据处理模块对本层数据进行层内并行运算,不与外部交互,减少了运算过程中不断从外部存储读写数据和参数产生大量功耗和延迟的问题,同时对多次输入数据,可进行流水处理,从而提高了神经网络数据的处理效率。
[0040] 在一个具体的例子中,步骤102中神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,他图1所示的方法还可包括图1中未示出的如下步骤102’:
[0041] 102’、神经网络中间层的层数据处理模块判断接收到的串行数据是否满足层内并行运算的预设最低条件;若满足,则执行所述对本身所属层的层数据进行层内并行运算,并串行输出运算结果的步骤。
[0042] 本实施例中,考虑到神经网络运算的每一层数据是一个三维矩阵,对数据输出来说每次都是输出一个数据,对数据输入来说,若要使处理器开始运算,至少要传输完一个维度的数据处理器才能开始计算,因此,预设最低条件可以为一个维度的数据。
[0043] 在一个具体的例子中,步骤101中神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算后,所述方法还包括:神经网络第一层的层数据处理模块存储运算结果;
[0044] 相应地,步骤102中神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算后,所述方法还包括:神经网络中间层的层数据处理模块存储运算结果;
[0045] 相应地,步骤103中神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算后,所述方法还包括:神经网络最后层的层数据处理模块存储运算结果。
[0046] 可见,本实施例中,每个层数据处理模块对本层数据进行层内并行运算,运算过程中本层数据均在本层数据处理模块中存储,减少了运算过程中不断从外部存储读写数据和参数产生大量功耗和延迟的问题。
[0047] 在一个具体的例子中,图1所示方法还可包括图1中未示出的如下步骤104~106:
[0048] 104、神经网络第一层的层数据处理模块接收到层数据配置信息后,对第一层的层数据进行配置。
[0049] 105、神经网络中间层的层数据处理模块接收到层数据配置信息后,对本身所属层的层数据进行配置。
[0050] 106、神经网络最后层的层数据处理模块接收到层数据配置信息后,对最后层的层数据进行配置。
[0051] 本实施例中,层数据配置信息例如包括:层数据处理模块所对应的神经网络的层。
[0052] 基于以上各实施例公开的神经网络数据串行流水处理方法,层数据处理模块为多核处理模块,相应地,层内并行运算为核间并行运算。
[0053] 可以理解,多个层数据处理模块也可集成到一个多核处理器中,一个层数据处理模块为该多核处理器的一个核。
[0054] 可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
[0055] 对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
[0056] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0057] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0058] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用