CN110020720A - 算子拼接方法及装置 - Google Patents
算子拼接方法及装置 Download PDFInfo
- Publication number
- CN110020720A CN110020720A CN201910259379.0A CN201910259379A CN110020720A CN 110020720 A CN110020720 A CN 110020720A CN 201910259379 A CN201910259379 A CN 201910259379A CN 110020720 A CN110020720 A CN 110020720A
- Authority
- CN
- China
- Prior art keywords
- operator
- splicing
- function
- data
- operators
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供一种算子拼接方法和装置,所述方法能够在不增加逻辑功能和额外资源的情况下,在人工智能处理器实现未曾在人工智能处理器上实现的复杂算子的计算功能,减少算子实现的复杂度,提升算子实现的效率。
Description
技术领域
本公开涉及机器学习领域,具体涉及一种算子拼接方法及装置。
背景技术
算子是一个一个函数空间到函数空间上的映射O:X→X。算子包括表达方法和对应公式。现有一些的基本算子例如reshape,split,cyclemult,add,tanh,sigmoid等都已经在人工智能处理器得到了实现,即能够直接输入数据并执行算子对应的运算,获得正确的输出结果。
但是,对于一些复杂的算子,例如Normalize,LSTM,RNN等,逻辑复杂,且资源限制多,从而未曾在人工智能处理器上得到实现。如何规避现有的逻辑问题和资源限制,实现复杂算子的计算过程,是一个亟待解决的问题。
公开内容
有鉴于此,本公开的目的在于提供一种算子拼接方法及装置,通过对复杂算子的计算过程进行拆分,获得其对应的拆解元素,进而获得拆解元素对应的简单算子,通过拼接简单算子实现复杂算子的计算过程,该方法能够在不增加逻辑功能和额外资源的情况下,有效实现复杂算子,减少算子实现的复杂度,提升算子实现的效率。
为了解决上述技术问题,本申请实施例第一方面提供了一种算子拼接方法,所述方法包括:
获取第一算子的数学模型,所述第一算子为不能直接在人工智能处理器上实现的算子;
对所述数学模型进行拆解,获得多个拆解元素;
获取所述多个拆解元素对应的多个第二算子,通过拼接所述多个第二算子实现所述第一算子的计算功能,所述第二算子为能直接在人工智能处理器上实现的算子。
在可选的示例中,所述对所述数学模型进行拆解,获得多个拆解元素,包括:
获取所述数学模型对应的变量名称、函数和约束条件;
将所述变量名称、函数和约束条件作为所述多个拆解元素。
在可选的示例中,所述获取所述多个拆解元素对应的多个第二算子,通过拼接所述多个第二算子实现所述第一算子的计算功能,包括:
获取与所述函数和约束条件对应的多个第二算子;
根据所述变量名称确定所述多个第二算子之间的拼接逻辑;
将所述多个第二算子按照所述连接逻辑进行拼接,实现所述第一算子的计算功能。
在可选的示例中,所述根据所述变量名称确定所述第二算子之间的连接逻辑,包括:
根据所述变量名称的位置确定所述变量名称对应的变量为输出值或输入值;
根据所述输入值和输出值确定所述函数和约束条件对应的第二算子进行拼接时的先后顺序。
在可选的示例中,所述通过拼接所述多个第二算子实现所述第一算子的计算功能还包括:
将初始输入数据和在先第二算子运算获得的输出数据按照特定名称存储在数据容器中,作为存储数据,所述在先第二算子为产生输出数据的第二算子;
在后第二算子按照所述特定名称对所述数据容器进行寻址,获取目标容器中的所述存储数据作为所述在后第二算子的输入数据,完成所述在先第二算子、目标容器和所述在后第二算子的拼接,所述在后算子为获取输入数据的第二算子。
在可选的示例中,在所述在后第二算子按照所述特定名称对所述数据容器进行寻址,获取所述特定容器中的所述输出数据作为所述在后第二算子的输入数据之后,还包括:
获取网络参数配置并对其属性进行判断,根据判断结果确认所述在后第二算子的输入数据。
在可选的示例中,所述第一算子为长短记忆网络LSTM,其对应的计算过程可以通过拼接变形算子,分割算子,循环乘法算子,加法算子,双曲正切函数,阈值函数,乘法算子,多层感知机和拼接算子来实现。
在可选的示例中,所述第一算子为循环神经网络RNN,其对应的计算过程可以通过拼接变形算子,分割算子,多层感知机,循环乘法算子,加法算子,双曲正切函数和拼接算子来实现。
在可选的示例中,所述第一算子为归一化函数Normalize,其对应的计算过程可以通过拼接乘法算子,多层感知机,加法算子,开方算子,除法算子,变形算子,循环乘法算子和卷积算子来实现。
本申请实施例第二方面提供了一种算子拼接装置,所述装置包括:
获取单元,用于获取第一算子的数学模型,所述第一算子为不能直接在人工智能处理器上实现的算子;
拆解单元,用于根据所述数学模型对所述第一算子的计算功能进行拆解,获得多个拆解元素;
拼接单元,用于获取所述多个拆解元素对应的多个第二算子,通过拼接所述多个第二算子实现所述第一算子的计算功能,所述第二算子为能直接在人工智能处理器上实现的算子。
在可选的示例中,所述对所述数学模型进行拆解,获得多个拆解元素,包括:
获取所述数学模型对应的变量名称、函数和约束条件;
将所述变量名称、函数和约束条件作为所述多个拆解元素。
在可选的示例中,所述获取所述多个拆解元素对应的多个第二算子,通过拼接所述多个第二算子实现所述第一算子的计算功能,包括:
获取与所述函数和约束条件对应的多个第二算子;
根据所述变量名称确定所述多个第二算子之间的连接逻辑;
将所述多个第二算子按照所述连接逻辑进行拼接,实现所述第一算子的计算功能。
在可选的示例中,所述根据所述变量名称确定所述第二算子之间的连接逻辑,包括:
根据所述变量名称的位置确定所述变量名称对应的变量为输出值或输入值;
根据所述输入值和输出值确定所述函数和约束条件对应的第二算子进行拼接时的先后顺序。
在可选的示例中,所述通过拼接所述多个第二算子实现所述第一算子的计算功能还包括:
将初始输入数据和在先第二算子运算获得的输出数据按照特定名称存储在数据容器中,作为存储数据,所述在先第二算子为产生输出数据的第二算子;
在后第二算子按照所述特定名称对所述数据容器进行寻址,获取目标容器中的所述存储数据作为所述在后第二算子的输入数据,完成所述在先第二算子、目标容器和所述在后第二算子的拼接,所述在后算子为获取输入数据的第二算子。
在可选的示例中,在所述在后第二算子按照所述特定名称对所述数据容器进行寻址,获取所述特定容器中的所述输出数据作为所述在后第二算子的输入数据之后,还包括:
获取网络参数配置并对其属性进行判断,根据判断结果确认所述在后第二算子的输入数据。
在可选的示例中,所述第一算子为长短记忆网络LSTM,其对应的计算过程可以通过拼接变形算子,分割算子,循环乘法算子,加法算子,双曲正切函数,阈值函数,乘法算子,多层感知机和拼接算子来实现。
在可选的示例中,所述第一算子为循环神经网络RNN,其对应的计算过程可以通过拼接变形算子,分割算子,多层感知机,循环乘法算子,加法算子,双曲正切函数和拼接算子来实现。
在可选的示例中,所述第一算子为归一化函数Normalize,其对应的计算过程可以通过拼接乘法算子,多层感知机,加法算子,开方算子,除法算子,变形算子,循环乘法算子和卷积算子来实现。
本申请实施例第三方面提供了一种神经网络芯片,包括第二方面提供的算子拼接装置。
本申请实施例第四方面提供了一种电子设备,包括第三方面提供的神经网络芯片。
本申请实施例第五方面提供了一种板卡,该板卡包括上述第三方面所述的神经网络芯片。
本申请实施例第六方面提供了一种存储介质,用于存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行第一方面方法所述的步骤的指令。
可以看出,本申请实施例公开了一种算子拼接方法和装置,其中算子拼接方法包括获取第一算子的数学模型,根据数学模型对第一算子的计算功能进行拆解,获得多个拆解元素;获取多个拆解元素对应的多个第二算子,通过拼接多个第二算子实现第一算子的计算功能,因为第一算子为不能直接在人工智能处理器上实现的算子,第二算子为能直接在人工智能处理器上实现的算子,因此通过本申请实施例中的方法,能够在不增加逻辑功能和额外资源的情况下,运用人工智能处理器上已实现的算子拼接实现人工智能处理器未曾实现的算子,提升算子实现的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本申请实施例提供的一种算子拼接方法结构示意图。
图1B为本申请实施例提供的一种可控制门的作用示意图。
图1C为本申请实施例提供的LSTM隐藏单元的完整逻辑结构示意图。
图1D为本申请实施例提供的一种LSTM算子输入门拼接流程图。
图1E为本申请实施例提供的一种LSTM算子遗忘门拼接流程图。
图1F为本申请实施例提供的一种LSTM算子输出门拼接流程图。
图2为本申请实施例提供的另一种算子拼接方法的流程示意图。
图3为本申请实施例提供的另一种算子拼接方法的流程示意图。
图4为本申请实施例提供的一种算子拼接装置的结构示意图。
图5是本申请实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先介绍本申请涉及的算子拼接方法,请参阅图1A,图1A为本申请实施例提供的一种算子拼接方法流程示意图,如图1A所示,算子拼接方法包括如下步骤:
101、获取第一算子的数学模型,所述第一算子为不能直接在人工智能处理器上实现的算子。
第一算子是不能直接在人工智能处理器上实现的算子,第一算子可以是一些逻辑复杂,资源限制多的复杂算子,例如归一化函数(Normalize)、长短记忆网络(Long Short-Term Memory,LSTM)或循环神经网络(Recurrent Neural Network,RNN)等。人工智能处理器包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics ProcessingUnit,GPU)、嵌入式神经网络处理器(Neural-network Processing Unit,NPU),或者图像处理单元(Image Processing Unit,IPU),机器学习单元(machine learning unit,MLU)等。
数学模型是运用数理逻辑方法和数学语言建构的科学或工程模型,可以用公式进行表达。例如对于LSTM算子,基于卷积神经网络框架(Convolutional Architecture forFast Feature Embedding,Caffe)在人工智能处理器上实现LSTM,首先需要获取其对应的数学模型。
LSTM是在普通RNN基础上,在隐藏层各神经元中增加记忆单元,从而使时间序列上的记忆信息可控,每次在隐藏层各单元间传递时通过几个可控制门(输入门,遗忘门,输出门)控制之前信息和当前信息的记忆和遗忘程度。
请参阅图1B,图1B为本申请实施例提供的一种可控制门的作用示意图,如图1B所示,C_t-1表示旧单元状态,通过遗忘门时,可以确定扔掉哪些信息,保留哪些信息,C'_t表示当前输入单元状态,通过输入门时,可以确定要更新哪些信息,通过C_t-1和C'_t结合更新获得新的单元状态C_t后,通过输出门决定输出那些内容,得到最后的输出内容H_t。
在LSTM中,包括三个可控制门的应用,具体情况请参阅图1C,图1C为本申请实施例提供的LSTM隐藏单元的完整逻辑结构示意图,如图1C所示,LSTM中包括遗忘门f_t,输入门i_t和输出门o_t。对于输入门,决定当前时刻网络的输入X_t有多少保存到单元状态C_t,其对应的数学模型为:
i_t=sigmoid(W_t.[H_t-1,X_t]+b_i) (1)
C'_t=tanh(W_c.[H_t-1,X_t]+b_c) (2)
C_t=f_t.C_t-1+i_t.C'_t (3)
通过旧的单元状态乘以遗忘门f_t,再用当前输入单元状态C'_t乘以输入门i_t,最后将两个积相加,就把当前记忆C'_t和长期记忆C_t-1组合在一起,形成新的单元状态C_t。
对于遗忘门,决定旧的单元状态C_t-1有多少可以保留到新的单元状态C_t,其对应的数学模型为:
f_t=sigmoid(W_f.[H_t-1,X_t]+b_f) (4)
对于输出门,控制新的单元状态C_t有多少输出到LSTM的输出值H_t,其对应的数学模型为:
o_t=sigmoid(W_o.[H_t-1,X_t]+b_o) (5)
H_t=o_t.tanh(C_t) (6)
获取到第一算子的数学模型后,则可以进行下一步的拆分工作。
102、对所述数学模型进行拆解,获得多个拆解元素。
数学模型中包括多个数学公式,每个数学公式中的单个元素或者元素组合对应一个基本算子,因此,首先需要对数学模型进行拆解,获得多个拆解元素,再根据拆解元素寻求第二算子拼接实现第一算子的计算功能。
可选的,所述对所述数学模型进行拆解,获得多个拆解元素,包括:获取所述数学模型对应的变量名称、函数和约束条件;将所述变量名称、函数和约束条件作为所述多个拆解元素。
数学模型是一系列的数学公式,每一个数学公式中对应多个元素,包括变量名称、函数和约束条件等,对数学模型进行拆解后,可获得多个拆解元素。例如上述公式(1),可获得的拆解元素包括i_t,W_t,H_t-1,X_t,b_i,sigmoid(),*,+,=,同样的,其他公式也可以获得其对应的拆解元素。
103、获取所述多个拆解元素对应的多个第二算子,通过拼接所述多个第二算子实现所述第一算子的计算功能,所述第二算子为能直接在人工智能处理器上实现的算子。
获得多个拆解元素后,再确定拆解元素对应的第二算子。其中,拆解元素和第二算子并不是一一对应的关系,可能是一个拆解元素对应一个第二算子,也可能是多个拆解元素对应一个第二算子,且有的拆解元素不对应第二算子,而是用于确定第二算子之间的拼接逻辑。
可选的,所述获取所述多个拆解元素对应的多个第二算子,通过拼接所述多个第二算子实现所述第一算子的计算功能,包括:获取与所述函数和约束条件对应的多个第二算子;根据所述变量名称确定所述多个第二算子之间的连接逻辑;将所述多个第二算子按照所述连接逻辑进行拼接,实现所述第一算子的计算功能。
具体地,公式(1)拆解出来的函数包括sigmoid(),因此获取与该函数对应的第二算子为sigmoid算子,约束条件“+”对应add算子,“*”对应Mlp算子。变量名称包括i_t,W_t,H_t-1,X_t,b_i,其中W_t表示权值,可以由外部直接获取,H_t-1表示t-1时刻的输出数据作为t时刻的输入数据,X_t表示t时刻新的输入数据,b_i为偏置值。在第二算子进行拼接时,可以根据变量名称确定拼接逻辑。例如经过算子A的计算输出H_t-1,算子B的计算需要输入H_t-1,那么算子B拼接在算子A之后,且通过H_t-1进行拼接。
可选的,所述通过拼接所述多个第二算子实现所述第一算子的计算功能还包括:将初始输入数据和在先第二算子运算获得的输出数据按照特定名称存储在数据容器中,作为存储数据,所述在先第二算子为产生输出数据的第二算子;
在后第二算子按照所述特定名称对所述数据容器进行寻址,获取目标容器中的所述存储数据作为所述在后第二算子的输入数据,完成所述在先第二算子、目标容器和所述在后第二算子的拼接,所述在后算子为获取输入数据的第二算子。
在第一算的运算过程中,涉及到很多数据的输入和转换,包括最开始的第一输入数据,中间过程中的第二输入数据,以及过程中产生的输出数据转换成的第三输入数据,这些数据可以存储在数据容器blobs中,并且按照特定的名称进行存储。在先第二算子表示所有会产生中间输出数据的第二算子,在后第二算子表示所有需要获得输入数据的第二算子,同一个第二算子针对它的输出数据即为在先第二算子,针对它的输入数据即为在后第二算子。在后第二算子需要获取输入数据时,就可以寻址到它的输入数据对应的blobs中并获取到存储数据,即可按照顺序完成在先第二算子、存储数据对应的目标容器,以及在后第二算子的拼接过程。
可选的,在所述在后第二算子按照所述特定名称对所述数据容器进行寻址,获取所述特定容器中的所述输出数据作为所述在后第二算子的输入数据之后,还包括:获取网络参数配置并对其属性进行判断,根据判断结果确认所述在后第二算子的输入数据。
具体地,在第一算子进行运算的过程中,很多情况下并不是单线运算,当网络参数配置不同时,运算过程也会不同,因此,在这个过程中,需要获取网络参数配置的属性,以便进一步确认在后第二算子的输入数据。例如属性为true时,在后第二算子的输入数据是数据A和数据B,为false时,第二算子的输入数据是数据A,数据B和数据C,数据C即为属性false对应的额外输入数据。或者,因此,根据网络参数配置的属性,在后第二算子可以进一步确认对哪些数据容器进行寻址并获得其中的存储数据。
可选的,所述第一算子为长短记忆网络LSTM,其对应的计算过程可以通过拼接变形算子,分割算子,循环乘法算子,加法算子,双曲正切函数,阈值函数,乘法算子,多层感知机和拼接算子来实现。
具体地,变形算子,分割算子,循环乘法算子,加法算子,双曲正切函数,阈值函数,乘法算子,多层感知机和拼接算子分别对应的第二算子为:reshape,split,cyclemult,add,tanh,sigmoid,mult,mlp和concat。LSTM的三个控制门对应的数学模型已经在上述内容中给出,其隐藏单元的完整逻辑结构可参照图1B,因此,结合图1B和上述数学模型,可以获得LSTM算子的拼接流程。请参阅图1D,图1D为本申请实施例提供的一种LSTM算子输入门拼接流程图,如图1D所示,整个流程是当expose_hidden设为true时,将bottom3和bottom4作为输出,并且输出top1和top2,同时根据expose_hidden的值及当前网络输入数量计算static_input的值,当static_input的值为1时bottom2作为静态输入。
具体地,首先准备LSTM隐藏单元的输入数据:
1.bottom0经过reshape改变输入形状,比如(3,2,16)→(6,16,1,1)得到bottom0_reshape_blob作为Mlp的输入,经过权连接计算W_xc_x=W_xc*x+b_c得到w_xc_blob,将w_xc_blob通过Split拆分成一组输出w_xc_blobs_[T];
2.bottom1经过reshape改变输入形状,得到bottom1_reshape_blob,通过Split拆分成一组输出conts_blobs_[T];
3.当expose_hidden为true时,bottom3和bottom4分别经过reshape得到bottom3_reshape_blob和bottom4_reshape_blob;当input_static为true时,bottom2经过reshape得到bottom2_reshape_blob,再经过Mlp计算,w_xc_x_static=W_xc_static*x_static得到w_xc_x_static_blob;
准备好输入数据后,接着进行如下步骤:
4.判断i==0是否为真,这里做的是一个时间维度T的循环,在i为[0,T)的值,当i=0时,根据expose_hidden是否为true作不同的运算,当
Expose_hidden为true时,利用bottom4_reshape_blob和cont_blobs[0]作为输入,经过cycleMult算子进行循环乘计算,得到h_cont_blobs[0]的值;当expose hidden为false时,利用一个空tensor和cont_blobs[0]作为输入经过cycleMult算子进行循环乘计算,得到h_cont_blobs[0]的值;
当1!=0时,将h_blobs[i]经过reshape得到h_reshape_blobs_[i-1],接着将h_reshape_blobs[i-1]和h_cont_blobs_[i]作为cycleMult的输入进行循环乘操作得到h_cont_blobs[i];
将h_cont_blobs_[i]再次进行reshape操作还原成原来的形状得到h_reshape_blobs_[i],再进行Mlp权连接计算W_hc_h[t-1]=w_hc*h_conte_[t-1]得到w_hch_blobs_[i];
5.根据公式gate_input_t=W_hc*h_conted[t-1]+W_xc*x_t+b_c=W_hc_h_[t-1]+w_xc_x_t+b_c进入下一步计算,若static_input为true时,将w_hc_h_blobs_[i]和w_xc_x_blobs[i]作为Add的输入,得到中间值temp_input_blobs[i];再将temp_input_blobs和w_xc_x_static_blobs作为Add的输入,得到gate_input_blobs_[i];
若static_input为false时,将w_hc_h_blobs和w_xc_x_blobs_[i]作为Add的输入,得到gate_input_blobs_[i]。
在上述过程中,步骤4是针对公式(1)中H_t-1的运算,因为LSTM是一个循环神经网络,它的计算过程具有时序性,因此对于H_t-1需要重复计算获取多个对应值,步骤4中权连接计算W_hc_h[t-1]=w_hc*h_conte_[t-1]即对应公式(1)中的W_t*H_t-1,得到其对应的输出值w_hch_blobs_[i]。
在步骤5中,gate_input_t=W_hc*h_conted[t-1]+W_xc*x_t+b_c=W_hc_h_[t-1]+w_xc_x_t+b_c对应公式(1)中的W_t.[H_t-1,X_t]+b_i,static_input为偏置值,偏置值的属性不同,Add算子对应的输入数据不同,需要对不同的blobs进行寻址,获得其中的存储数据作为自己的输入数据,计算获得最后的gate_input_blobs_[i]。
请参阅图1E,图1E为本申请实施例提供的一种LSTM算子遗忘门拼接流程图,在这个算子拼接过程中,可以计算获得新的单元状态C_t和输出内容H_t。如图1D所示,输入有:C_[t-1],gate_input_blobs_={i_t,f_t,o_t,g_t}
1.将gate_input_blobs_通过Split拆分得到i_f_o_g_blobs[j+i*4],所以
i_f_o_g_blobs[j+i*4]为i_t’;
i_f_o_g_blobs[j+i*4+1]为f_t’;
i_f_o_g_blobs[j+i*4+2]为o_t’;
i_f_o_g_blobs[j+i*4+3]为g_t’;
2.结合LSTM逻辑和数学模型,i_t=sigmoid[i_t’];
f_t=sigmoid[f_t’];
o_t=sigmoid[o_t’];
g_t=tanh[g_t’];
其中i_t,f_t,o_t,g_t分别对应上述数学模型中的it,ft,ot和C’t。
将i_f_o_g_blobs[j+i*4]进行Active(sigmoid)计算得到i_blobs_[i];将i_f_o_g_blobs[j+i*4+1]进行Active(sigmoid)计算得到f_blobs_[i];将i_f_o_g_blobs[j+i*4+2]进行Active(sigmoid)计算得到o_blobs_[i];将i_f_o_g_blobs[j+i*4+3]进行Active(sigmoid)计算得到g_blobs_[i];
3.根据C_t=cont_t*(f_t*C_[t-1])+(i_t*g_t)(对应上述公式(3))逻辑,将i_blobs_[i]和g_blobs_[i]进行Mult乘法计算,得到中间值i_g_temp_blobs_[i];
4.进行i==0的逻辑判断,结合逻辑判断,分别做不同的运算,当==0时,如果expose_hidden为true,将bottom3_reshape_blob_进行reshape得到c_reshape_blob_,再将c_reshape_blob_和f_blobs_[0]作为cyclemult计算,得到f_c_temp_blobs_[0];如果expose_hidden为false时,将f_blobs[0]和空tensor作cyclemult计算,得到f_c_temp_blobs_[0];
当i!=0时,将f_blobs[i]和c_blobs_[i]做Mult乘法计算,得到f_c_temp_blobs_[i];
5.将f_c_temp_blobs_[i]进行reshape计算,得到f_c_reshape_blobs_[i],再将f_c_reshape_blobs_[i]和cont_blobs_[i]做循环乘计算得到cont_temp_blobs_[i];cont_temp_blobs_[i]经过reshape还原成原生形状得到cont_reshape_blobs_[i];将cont_reshape_blobs_[i]和i_g_temp_blobs_[i]进行加法计算,得到c_blobs_[i+1],即Ct;
6.根据H_t=o_t*tanh[c_t](对应公式(6))的逻辑,将c_blobs_[i+1]进行Active(tanh)计算得到tanh_c_temp_blobs_[i];再将tanh_c_temp_blobs_[i]和o_blobs_[i]做乘法计算得到h_blobs_[i+1];即Ht。
然后进行输出处理,请参阅图1F,图1F为本申请实施例提供的一种LSTM算子输出门拼接流程图,如图1F所示,对图1E中计算获得的数据进行处理得到最后的输出结果。
1.将h_blobs_[i+1]进行concat合并成一个输出,得到top0_reshape_blob_,再进行reshape还原到原始形状,得到top[0];
2.如果expose_hidden为true,将h_blobs_[T]中的输入拷贝到top1_reshape_blob_,再经过reshape还原到原始形状得到top[1];c_blobs_[T]中的输入拷贝到top2_reshape_blob_中,再经过reshape还原到原始形状得到top[2]。
经过上述过程,完成对LSTM算子的拼接。
可选的,所述第一算子为循环神经网络RNN,其对应的计算过程可以通过拼接变形算子,分割算子,多层感知机,循环乘法算子,加法算子,双曲正切函数和拼接算子来实现。
可选的,所述第一算子为归一化函数Normalize,其对应的计算过程可以通过拼接乘法算子,多层感知机,加法算子,开方算子,除法算子,变形算子,循环乘法算子和卷积算子来实现。
同样地,对于RNN和Normalize算子,也可以通过第二算子的拼接实现其对应的计算过程。RNN的拼接算子包括:变形算子,分割算子,多层感知机,循环乘法算子,加法算子,双曲正切函数和拼接算子,对应为:reshape,split,mlp,cyclemult,add,tanh和concat。对于RNN,与LSTM一样都是循环神经网络,因此它们对应的第二算子也相似,这些算子的拼接逻辑与RNN的数学模型对应,与LSTM会有所差别。Normalize的拼接算子包括:乘法算子,多层感知机,加法算子,开方算子,除法算子,变形算子,循环乘法算子和卷积算子,对应为:mult,mlp,add,sqrt,realDiv,reshape,cyclemult和convoltion。Normalize为归一化算子,因此需要运用到sqrt算子进行开方计算,运用Conv算子进行卷积计算等,其对应第二算子的拼接逻辑与Normalize的数学模型对应。
可见,在本申请实施例中,获取第一算子的数学模型,根据数学模型对第一算子的计算功能进行拆解,获得多个拆解元素;获取多个拆解元素对应的多个第二算子,通过拼接多个第二算子实现第一算子的计算功能,因为第一算子为不能直接在人工智能处理器上实现的算子,第二算子为能直接在人工智能处理器上实现的算子,因此通过本申请实施例中的方法,能够在不增加逻辑功能和额外资源的情况下,运用人工智能处理器上已实现的算子拼接实现人工智能处理器未曾实现的算子,提升算子实现的效率。
请参阅图2,图2为本申请实施例提供的另一种算子拼接方法的流程示意图,如图2所示,该方法包括如下步骤:
201、获取第一算子的数学模型,所述第一算子为不能直接在人工智能处理器上实现的算子;
202、获取所述数学模型对应的变量名称、函数和约束条件;
203、将所述变量名称、函数和约束条件作为多个拆解元素;
204、获取与所述函数和约束条件对应的多个第二算子;
205、根据所述变量名称的位置确定所述变量名称对应的变量为输出值或输入值;
206、根据所述输入值和输出值确定所述函数和约束条件对应的第二算子进行拼接时的先后顺序;
207、将所述多个第二算子按照所述先后顺序进行拼接,实现所述第一算子的计算功能。
其中,上述步骤201-步骤207的具体描述可以参照图1A-图1E所描述的算子拼接方法的相应描述,在此不再赘述。
可见,本申请实施例公开的算子拼接方法,通过获取第一算子的数学模型,根据数学模型对第一算子的计算功能进行拆解,获得多个拆解元素;获取多个拆解元素对应的多个第二算子,通过拼接多个第二算子实现第一算子的计算功能,因为第一算子为不能直接在人工智能处理器上实现的算子,第二算子为能直接在人工智能处理器上实现的算子,因此通过本申请实施例中的方法,能够在不增加逻辑功能和额外资源的情况下,运用人工智能处理器上已实现的算子拼接实现人工智能处理器未曾实现的算子,并且通过将第一算子拆解为变量、函数和约束条件,进一步判断第二算子的连接逻辑和先后顺序,提升算子实现的可靠性和准确率。
请参阅图3,图3位本申请实施例提供的另一种算子拼接方法的流程示意图,如图2所示,该方法包括如下步骤:
301、获取第一算子的数学模型,所述第一算子为不能直接在人工智能处理器上实现的算子;
302、对所述数学模型进行拆解,获得多个拆解元素;
303、获取所述多个拆解元素对应的多个第二算子,将初始输入数据和在先第二算子运算获得的输出数据按照特定名称存储在数据容器中,作为存储数据,所述在先第二算子为产生输出数据的第二算子;
304、在后第二算子按照所述特定名称对所述数据容器进行寻址,获取所述目标容器中的所述存储数据作为所述在后第二算子的输入数据;
305、获取网络参数配置并对其属性进行判断,根据判断结果确认所述在后第二算子的输入数据;
306、完成所述在先第二算子、输入数据和所述在后第二算子的拼接,所述在后算子为获取输入数据的第二算子。
其中,上述步骤301-步骤306的具体描述可以参照图1A-图1E所描述的算子拼接方法的相应描述,在此不再赘述。
可见,本申请实施例公开的算子拼接方法,通过获取第一算子的数学模型,根据数学模型对第一算子的计算功能进行拆解,获得多个拆解元素;获取多个拆解元素对应的多个第二算子,通过拼接多个第二算子实现第一算子的计算功能,因为第一算子为不能直接在人工智能处理器上实现的算子,第二算子为能直接在人工智能处理器上实现的算子,因此通过本申请实施例中的方法,能够在不增加逻辑功能和额外资源的情况下,运用人工智能处理器上已实现的算子拼接实现人工智能处理器未曾实现的算子,并且通过在先第二算子、目标容器和在后第二算子的连接,再进一步通过网络参数配置的属性判断,确定和完善算子拼接的顺序和逻辑,提升了算子实现的准确率和可靠性。
请参阅图4,图4为本申请实施例提供的一种算子拼接装置的结构示意图,如图4所示,所述算子拼接装置400包括:
获取单元401,用于获取第一算子的数学模型,所述第一算子为不能直接在人工智能处理器上实现的算子;
拆解单元402,用于根据所述数学模型对所述第一算子的计算功能进行拆解,获得多个拆解元素;
拼接单元403,用于获取所述多个拆解元素对应的多个第二算子,通过拼接所述多个第二算子实现所述第一算子的计算功能,所述第二算子为能直接在人工智能处理器上实现的算子。
在此需要说明的是,上述获取单元401、拆解单元402和拼接单元403的具体工作过程参见上述1A-图1E所描述的算子拼接方法的相应描述,在此不再赘述。
可以看出,本申请实施例公开的算子拼接装置,首先获取第一算子的数学模型,根据数学模型对第一算子的计算功能进行拆解,获得多个拆解元素;然后获取多个拆解元素对应的多个第二算子,通过拼接多个第二算子实现第一算子的计算功能。因为第一算子为不能直接在人工智能处理器上实现的算子,第二算子为能直接在人工智能处理器上实现的算子,因此通过本申请实施例中的方法,能够在不增加逻辑功能和额外资源的情况下,运用人工智能处理器上已实现的算子拼接实现人工智能处理器未曾实现的算子,提升算子实现的效率。
在可选情况下,所述拆解单元402具体用于:获取所述数学模型对应的变量名称、函数和约束条件;将所述变量名称、函数和约束条件作为所述多个拆解元素。
在可选情况下,所述拼接单元403具体用于:获取与所述函数和约束条件对应的多个第二算子;根据所述变量名称确定所述多个第二算子之间的连接逻辑;将所述多个第二算子按照所述连接逻辑进行拼接,实现所述第一算子的计算功能。
在可选情况下,所述拼接单元403还具体用于:
根据所述变量名称的位置确定所述变量名称对应的变量为输出值或输入值;根据所述输入值和输出值确定所述函数和约束条件对应的第二算子进行拼接时的先后顺序。
在可选情况下,所述拼接单元403具体用于:
将初始输入数据和在先第二算子运算获得的输出数据按照特定名称存储在数据容器中,作为存储数据,所述在先第二算子为产生输出数据的第二算子;
在后第二算子按照所述特定名称对所述数据容器进行寻址,获取目标容器中的所述存储数据作为所述在后第二算子的输入数据,完成所述在先第二算子、目标容器和所述在后第二算子的拼接,所述在后算子为获取输入数据的第二算子。
在可选情况下,所述拼接单元403还具体用于:获取网络参数配置并对其属性进行判断,根据判断结果确认所述在后第二算子的输入数据。
在可选情况下,所述第一算子为长短记忆网络LSTM,其对应的计算过程可以通过拼接变形算子,分割算子,循环乘法算子,加法算子,双曲正切函数,阈值函数,乘法算子,多层感知机和拼接算子来实现。
在可选情况下,所述第一算子为循环神经网络RNN,其对应的计算过程可以通过拼接变形算子,分割算子,多层感知机,循环乘法算子,加法算子,双曲正切函数和拼接算子来实现。
在可选情况下,所述第一算子为归一化函数Normalize,其对应的计算过程可以通过拼接乘法算子,多层感知机,加法算子,开方算子,除法算子,变形算子,循环乘法算子和卷积算子来实现。
在一些实施例里,还申请了一种存储介质,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行上述方法中任一项所述的方法中的步骤的指令。
在一些实施例里,还申请了一种神经网络芯片,其包括了上述算子拼接装置。
在一些实施例里,申请了一种电子装置,其包括了上述神经网络芯片。
在一些实施例里,申请了一种板卡,如图5所示,所述板卡包括:存储器件390、接口装置391和控制器件392以及上述神经网络芯片389;
其中,所述神经网络芯片389与所述存储器件390、所述控制器件392以及所述接口装置391分别连接;
所述存储器件390,用于存储数据;
所述接口装置391,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件392,用于对所述芯片的状态进行监控。
所述存储器件390与所述神经网络芯片389通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储方法可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口方法与所述芯片封装结构内的芯片电连接。所述接口方法用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口方法可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口方法还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口方法传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制方法可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备包括数据算子拼接方法、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法,可通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,方法或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种算子拼接方法,其特征在于,所述方法包括:
获取第一算子的数学模型,所述第一算子为不能直接在人工智能处理器上实现的算子;
对所述数学模型进行拆解,获得多个拆解元素;
获取所述多个拆解元素对应的多个第二算子,通过拼接所述多个第二算子实现所述第一算子的计算功能,所述第二算子为能直接在人工智能处理器上实现的算子。
2.根据权利要求1所述的方法,其特征在于,所述对所述数学模型进行拆解,获得多个拆解元素,包括:
获取所述数学模型对应的变量名称、函数和约束条件;
将所述变量名称、函数和约束条件作为所述多个拆解元素。
3.根据权利要求2所述的方法,其特征在于,所述获取所述多个拆解元素对应的多个第二算子,通过拼接所述多个第二算子实现所述第一算子的计算功能,包括:
获取与所述函数和约束条件对应的多个第二算子;
根据所述变量名称确定所述多个第二算子之间的拼接逻辑;
将所述多个第二算子按照所述连接逻辑进行拼接,实现所述第一算子的计算功能。
4.根据权利要求3所述的方法,其特征在于,所述根据所述变量名称确定所述第二算子之间的连接逻辑,包括:
根据所述变量名称的位置确定所述变量名称对应的变量为输出值或输入值;
根据所述输入值和输出值确定所述函数和约束条件对应的第二算子进行拼接时的先后顺序。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述通过拼接所述多个第二算子实现所述第一算子的计算功能还包括:
将初始输入数据和在先第二算子运算获得的输出数据按照特定名称存储在数据容器中,作为存储数据,所述在先第二算子为产生输出数据的第二算子;
在后第二算子按照所述特定名称对所述数据容器进行寻址,获取目标容器中的所述存储数据作为所述在后第二算子的输入数据,完成所述在先第二算子、目标容器和所述在后第二算子的拼接,所述在后算子为获取输入数据的第二算子。
6.根据权利要求5所述的方法,其特征在于,在所述在后第二算子按照所述特定名称对所述数据容器进行寻址,获取所述特定容器中的所述输出数据作为所述在后第二算子的输入数据之后,还包括:
获取网络参数配置并对其属性进行判断,根据判断结果确认所述在后第二算子的输入数据。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一算子为长短记忆网络LSTM,其对应的计算过程可以通过拼接变形算子,分割算子,循环乘法算子,加法算子,双曲正切函数,阈值函数,乘法算子,多层感知机和拼接算子来实现。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述第一算子为循环神经网络RNN,其对应的计算过程可以通过拼接变形算子,分割算子,多层感知机,循环乘法算子,加法算子,双曲正切函数和拼接算子来实现。
9.根据权利要求1-6任一项所述的方法,其特征在于,所述第一算子为归一化函数Normalize,其对应的计算过程可以通过拼接乘法算子,多层感知机,加法算子,开方算子,除法算子,变形算子,循环乘法算子和卷积算子来实现。
10.一种算子拼接装置,其特征在于,所述装置包括:
获取单元,用于获取第一算子的数学模型,所述第一算子为不能直接在人工智能处理器上实现的算子;
拆解单元,用于根据所述数学模型对所述第一算子的计算功能进行拆解,获得多个拆解元素;
拼接单元,用于获取所述多个拆解元素对应的多个第二算子,通过拼接所述多个第二算子实现所述第一算子的计算功能,所述第二算子为能直接在人工智能处理器上实现的算子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910259379.0A CN110020720B (zh) | 2019-04-01 | 2019-04-01 | 算子拼接方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910259379.0A CN110020720B (zh) | 2019-04-01 | 2019-04-01 | 算子拼接方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110020720A true CN110020720A (zh) | 2019-07-16 |
CN110020720B CN110020720B (zh) | 2021-05-11 |
Family
ID=67190380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910259379.0A Active CN110020720B (zh) | 2019-04-01 | 2019-04-01 | 算子拼接方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110020720B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110458294A (zh) * | 2019-08-19 | 2019-11-15 | Oppo广东移动通信有限公司 | 模型运行方法、装置、终端及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103384898A (zh) * | 2010-06-21 | 2013-11-06 | 约翰·吉利斯 | 计算机实现的工具箱系统和方法 |
CN103390070A (zh) * | 2012-05-07 | 2013-11-13 | 北京大学深圳研究生院 | 一种可重构算子阵列结构 |
CN104504143A (zh) * | 2015-01-04 | 2015-04-08 | 华为技术有限公司 | 一种流图优化方法及其装置 |
CN107621932A (zh) * | 2017-09-25 | 2018-01-23 | 威创集团股份有限公司 | 显示图像的局部放大方法和装置 |
CN107967135A (zh) * | 2017-10-31 | 2018-04-27 | 平安科技(深圳)有限公司 | 计算引擎实现方法、电子装置及存储介质 |
CN108268939A (zh) * | 2016-12-30 | 2018-07-10 | 上海寒武纪信息科技有限公司 | 用于执行lstm神经网络运算的装置和运算方法 |
CN108549723A (zh) * | 2018-04-28 | 2018-09-18 | 北京神州泰岳软件股份有限公司 | 一种文本概念分类方法、装置及服务器 |
CN109308300A (zh) * | 2018-09-27 | 2019-02-05 | 上海达梦数据库有限公司 | 一种逻辑运算的处理方法、装置、转换插件及存储介质 |
CN109375951A (zh) * | 2016-04-27 | 2019-02-22 | 北京中科寒武纪科技有限公司 | 一种用于执行全连接层神经网络正向运算的装置和方法 |
CN109542985A (zh) * | 2018-11-27 | 2019-03-29 | 江苏擎天信息科技有限公司 | 一种通用流式数据分析模型及其构建方法 |
-
2019
- 2019-04-01 CN CN201910259379.0A patent/CN110020720B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103384898A (zh) * | 2010-06-21 | 2013-11-06 | 约翰·吉利斯 | 计算机实现的工具箱系统和方法 |
CN103390070A (zh) * | 2012-05-07 | 2013-11-13 | 北京大学深圳研究生院 | 一种可重构算子阵列结构 |
CN104504143A (zh) * | 2015-01-04 | 2015-04-08 | 华为技术有限公司 | 一种流图优化方法及其装置 |
CN109375951A (zh) * | 2016-04-27 | 2019-02-22 | 北京中科寒武纪科技有限公司 | 一种用于执行全连接层神经网络正向运算的装置和方法 |
CN108268939A (zh) * | 2016-12-30 | 2018-07-10 | 上海寒武纪信息科技有限公司 | 用于执行lstm神经网络运算的装置和运算方法 |
CN107621932A (zh) * | 2017-09-25 | 2018-01-23 | 威创集团股份有限公司 | 显示图像的局部放大方法和装置 |
CN107967135A (zh) * | 2017-10-31 | 2018-04-27 | 平安科技(深圳)有限公司 | 计算引擎实现方法、电子装置及存储介质 |
CN108549723A (zh) * | 2018-04-28 | 2018-09-18 | 北京神州泰岳软件股份有限公司 | 一种文本概念分类方法、装置及服务器 |
CN109308300A (zh) * | 2018-09-27 | 2019-02-05 | 上海达梦数据库有限公司 | 一种逻辑运算的处理方法、装置、转换插件及存储介质 |
CN109542985A (zh) * | 2018-11-27 | 2019-03-29 | 江苏擎天信息科技有限公司 | 一种通用流式数据分析模型及其构建方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110458294A (zh) * | 2019-08-19 | 2019-11-15 | Oppo广东移动通信有限公司 | 模型运行方法、装置、终端及存储介质 |
CN110458294B (zh) * | 2019-08-19 | 2022-02-25 | Oppo广东移动通信有限公司 | 模型运行方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110020720B (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230131283A1 (en) | Method for generating universal learned model | |
CN109543832A (zh) | 一种计算装置及板卡 | |
CN109754011A (zh) | 基于Caffe的数据处理方法、装置和相关产品 | |
CN109522052A (zh) | 一种计算装置及板卡 | |
CN108205704B (zh) | 一种神经网络芯片 | |
CN107766936A (zh) | 人造神经网络、人造神经元及人造神经元的控制方法 | |
CN109754074A (zh) | 一种神经网络量化方法、装置以及相关产品 | |
CN109685201A (zh) | 运算方法、装置及相关产品 | |
CN105956660A (zh) | 一种用于实时图像识别的神经元网络芯片实现方法 | |
CN109739703B (zh) | 调错方法及相关产品 | |
CN109754084A (zh) | 网络结构的处理方法、装置及相关产品 | |
CN109670581B (zh) | 一种计算装置及板卡 | |
CN110119807A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110059797A (zh) | 一种计算装置及相关产品 | |
CN110020720A (zh) | 算子拼接方法及装置 | |
CN109670578A (zh) | 神经网络首层卷积层数据处理方法、装置及计算机设备 | |
CN109753319A (zh) | 一种释放动态链接库的装置及相关产品 | |
CN109711540A (zh) | 一种计算装置及板卡 | |
CN109726800A (zh) | 运算方法、装置及相关产品 | |
WO2021185262A1 (zh) | 计算装置、方法、板卡和计算机可读存储介质 | |
CN110059809A (zh) | 一种计算装置及相关产品 | |
CN109740746B (zh) | 运算方法、装置及相关产品 | |
CN109740730B (zh) | 运算方法、装置及相关产品 | |
CN109711367A (zh) | 运算方法、装置及相关产品 | |
CN110059812A (zh) | 脉冲神经网络运算芯片及相关运算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences Applicant after: Zhongke Cambrian Technology Co., Ltd Address before: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |