CN110647973A - 运算方法及相关方法和产品 - Google Patents
运算方法及相关方法和产品 Download PDFInfo
- Publication number
- CN110647973A CN110647973A CN201810682056.8A CN201810682056A CN110647973A CN 110647973 A CN110647973 A CN 110647973A CN 201810682056 A CN201810682056 A CN 201810682056A CN 110647973 A CN110647973 A CN 110647973A
- Authority
- CN
- China
- Prior art keywords
- tensor
- tensor decomposition
- decomposition
- result
- unit
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 109
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 659
- 238000012545 processing Methods 0.000 claims description 152
- 238000013528 artificial neural network Methods 0.000 claims description 140
- 210000002364 input neuron Anatomy 0.000 claims description 65
- 239000011159 matrix material Substances 0.000 claims description 58
- 210000004205 output neuron Anatomy 0.000 claims description 39
- 238000004364 calculation method Methods 0.000 claims description 38
- 230000008569 process Effects 0.000 claims description 30
- 210000002569 neuron Anatomy 0.000 claims description 28
- 238000004422 calculation algorithm Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 8
- 239000010410 layer Substances 0.000 description 50
- 238000010586 diagram Methods 0.000 description 23
- 230000015654 memory Effects 0.000 description 16
- 238000012549 training Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 239000000126 substance Substances 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000005481 NMR spectroscopy Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011478 gradient descent method Methods 0.000 description 2
- 239000011229 interlayer Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000005406 washing Methods 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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
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)
- Feedback Control In General (AREA)
Abstract
本公开涉及运算方法及相关方法和产品,所述方法应用于张量分解运算装置,所述张量分解运算装置包括控制器单元、运算单元和张量分解单元,所述方法包括:所述张量分解单元在所述控制器单元的控制下,获取待分解张量和张量分解指令;所述张量分解单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果;所述张量分解单元将所述张量分解结果传送至所述运算单元,以使所述运算单元根据所述张量分解结果进行运算。本公开实施例可以提高运算结果的准确率,以及提高运算的执行效率。
Description
技术领域
本公开涉及信息处理技术领域,尤其涉及一种运算方法及相关方法和产品。
背景技术
随着信息技术的不断发展,利用各种运算装置完成复杂任务的需求越来越大。例如,利用通用处理器完成机器视觉等复杂任务。传统的运算装置的处理能力受到计算能力、内存容量等方面的限制,在处理复杂任务时,存在处理效率低、结果不准确等各种问题。
发明内容
有鉴于此,本公开提出了一种基于张量分解的运算方法及相关产品,用以提高运算装置的处理效率,并提高运算结果的准确率。
根据本公开的一方面,提供了一种基于张量分解的运算方法,所述方法应用于张量分解运算装置,所述张量分解运算装置包括控制器单元、运算单元和张量分解单元,所述方法包括:
所述张量分解单元在所述控制器单元的控制下,获取待分解张量和张量分解指令;
所述张量分解单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果;
所述张量分解单元将所述张量分解结果传送至所述运算单元,以使所述运算单元根据所述张量分解结果进行运算。
在一种可能的实现方式中,所述张量分解单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述张量分解单元根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果;
所述张量分解单元根据所述秩选择结果进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述张量分解单元根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果,包括:
所述张量分解单元根据所述待分解张量和所述张量分解指令,利用变分贝叶斯矩阵分解进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述张量分解单元根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果,包括:
所述张量分解单元根据所述待分解张量、所述张量分解指令和选择精度进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述张量分解单元根据所述待分解张量和所述秩选择结果进行张量分解运算,得到张量分解结果,包括:
所述张量分解单元根据所述秩选择结果,利用Tucker-2分解进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述张量分解单元包括秩选择模块,所述张量分解单元在所述控制器单元的控制下,获取待分解张量和张量分解指令,包括:
所述秩选择模块在所述控制器单元的控制下,获取待分解张量和张量分解指令;
所述张量分解单元根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果,包括:
所述秩选择模块根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述张量分解单元包括张量分解模块,所述张量分解单元根据所述秩选择结果进行张量分解运算,得到张量分解结果,包括:
所述张量分解模块根据所述秩选择结果进行张量分解运算,得到张量分解结果。
根据本公开的一方面,提供了一种基于张量分解的神经网络运算方法,所述方法包括:
在神经网络运算过程中,采用上述任一项所述的基于张量分解的运算方法对所述神经网络的运算数据进行张量分解,得到所述运算数据的张量分解结果,并根据所述运算数据的张量分解结果完成所述神经网络运算,
所述神经网络的运算数据包括以下数据中的其中一种或任意组合:输入神经元数据、输出神经元数据、权值和权值的梯度。
在一种可能的实现方式中,所述方法包括:
在所述神经网络运算的正向传播过程中,获取所述输入神经元数据和所述权值;
采用上述任一项所述的基于张量分解的运算方法对所述权值进行张量分解,得到所述权值的张量分解结果;
根据所述输入神经元数据和所述权值的张量分解结果,得到所述输出神经元数据。
在一种可能的实现方式中,所述权值的张量分解结果包括核心张量、第一因子矩阵和第二因子矩阵,根据所述输入神经元数据和所述权值的张量分解结果,得到所述输出神经元数据,包括:
根据所述输入神经元数据和所述第一因子矩阵,得到第一中间张量;
根据所述第一中间张量和所述核心张量,得到第二中间张量;
根据所述第二中间张量和所述第二因子矩阵,得到所述输出神经元数据。
在一种可能的实现方式中,所述方法包括:
采用上述任一项所述的基于张量分解的运算方法对所述输入神经元数据进行张量分解,得到所述输入神经元数据的张量分解结果;
根据所述权值和所述输入神经元数据的张量分解结果,得到所述输出神经元数据。
在一种可能的实现方式中,所述方法还包括:
在所述神经网络运算的反向传播过程中,获取所述权值的梯度,所述权值的梯度包括利用梯度下降算法对所述权值进行计算后得到的结果;
采用上述任一项所述的基于张量分解的运算方法对所述权值的梯度进行张量分解,得到梯度张量分解结果;
根据所述梯度张量分解结果,对所述权值进行调整。
在一种可能的实现方式中,根据所述梯度张量分解结果,对所述权值进行调整,包括:
根据所述梯度张量分解结果和调整学习率,对所述权值进行调整,所述调整学习率包括按照预设的调整规则调整后的学习率,
所述预设的调整规则包括以下规则中的其中一种或任意组合:
按照预设步长调整学习率,
按照预设缩放值调整学习率;
按照预设调整函数调整学习率。
根据本公开的一方面,提供了一种基于张量分解的运算装置,所述张量分解运算装置包括控制器单元、运算单元和张量分解单元,所述张量分解单元用于:
在所述控制器单元的控制下,获取待分解张量和张量分解指令;
根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果;
将所述张量分解结果传送至所述运算单元,以使所述运算单元根据所述张量分解结果进行运算。
在一种可能的实现方式中,所述张量分解单元用于根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述张量分解单元用于:
根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果;
根据所述秩选择结果进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述张量分解单元包括秩选择模块,所述张量分解单元用于在所述控制器单元的控制下,获取待分解张量和张量分解指令,包括:
所述秩选择模块用于在所述控制器单元的控制下,获取待分解张量和张量分解指令;
所述张量分解单元用于根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果,包括:
所述秩选择模块用于根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述张量分解单元包括分解运算模块,所述张量分解单元用于根据所述秩选择结果进行张量分解运算,得到张量分解结果,包括:
所述分解运算模块用于根据所述秩选择结果进行张量分解运算,得到张量分解结果。
根据本公开的一方面,提供了一种基于张量分解的神经网络运算装置,所述装置应用于神经网络,所述装置用于:
在神经网络运算过程中,采用上述任一项所述的基于张量分解的运算装置对所述神经网络的运算数据进行张量分解,得到所述运算数据的张量分解结果,并根据所述运算数据的张量分解结果完成所述神经网络运算,
所述神经网络的运算数据包括以下数据中的其中一种或任意组合:输入神经元数据、输出神经元数据、权值和权值的梯度。
在一种可能的实现方式中,所述装置包括:
获取模块,用于在所述神经网络运算的正向传播过程中,获取所述输入神经元数据和所述权值;
第一张量分解模块,用于采用上述任一项所述的基于张量分解的运算装置对所述权值进行张量分解,得到所述权值的张量分解结果;
第一计算模块,用于根据所述输入神经元数据和所述权值的张量分解结果,得到所述输出神经元数据。
在一种可能的实现方式中,所述权值的张量分解结果包括核心张量、第一因子矩阵和第二因子矩阵,所述第一计算模块用于:
根据所述输入神经元数据和所述第一因子矩阵,得到第一中间张量;
根据所述第一中间张量和所述核心张量,得到第二中间张量;
根据所述第二中间张量和所述第二因子矩阵,得到所述输出神经元数据。
在一种可能的实现方式中,所述装置包括:
第二张量分解模块,用于采用上述任一项所述的基于张量分解的运算装置对所述输入神经元数据进行张量分解,得到所述输入神经元数据的张量分解结果;
第二计算模块,用于根据所述神经元的权值和所述输入神经元数据的张量分解结果,得到所述输出神经元数据。
在一种可能的实现方式中,所述装置包括:
梯度获取模块,用于在所述神经网络运算的反向传播过程中,获取所述权值的梯度,所述权值的梯度包括利用梯度下降算法对所述权值进行计算后得到的结果;
第三张量分解模块,用于采用上述任一项所述的基于张量分解的运算装置对所述权值的梯度进行张量分解,得到梯度张量分解结果;
权值调整模块,用于根据所述梯度张量分解结果,对所述权值进行调整。
根据本公开的一方面,提供了一种组合运算装置,所述组合运算装置包括一个或多个上述任一项所述的基于张量分解的神经网络运算装置,通用互联接口和其他处理装置;
所述基于张量分解的神经网络运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
根据本公开的一方面,提供了一种神经网络芯片,所述神经网络芯片包括:
上述任一项所述的基于张量分解的运算装置;或
上述任一项所述的基于张量分解的神经网络运算装置;或
上述的组合运算装置。
根据本公开的一方面,提供了一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述的神经网络芯片。
根据本公开的一方面,提供了一种板卡,该板卡包括上述的神经网络芯片封装结构。
根据本公开的一方面,提供了一种电子设备,所述电子设备包括:
上述任一项所述的基于张量分解的运算装置;或
上述任一项所述的基于张量分解的神经网络运算装置;或
上述的组合处理装置;或
上述的神经网络芯片。
在一些实施例中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
在一些实施例中,所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在本公开实施例中,张量分解运算装置包括控制器单元、运算单元和张量分解单元,其中张量分解单元在控制器单元的控制下,获取待分解张量和张量分解指令进行张量分解运算,得到张量分解结果,并将张量分解结果传送至运算单元,以使运算单元根据张量分解结果进行运算。控制器单元可以根据需求确定张量分解单元获取到的待分解张量和张量分解指令,使得基于张量分解的运算更加灵活。运算单元根据张量分解单元计算得到的张量分解结果进行运算,可以提高运算结果的准确率,以及提高运算的执行效率。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的基于张量分解的运算方法的流程图;
图2示出根据本公开一实施例的基于张量分解的运算方法的流程图;
图3示出根据本公开一实施例的基于张量分解的运算方法的流程图;
图4示出根据本公开一实施例的张量分解运算方法中张量分解指令的结构示意图;
图5示出根据本公开一实施例的基于张量分解的神经网络运算方法的流程图;
图6示出根据本公开一实施例的神经网络的数据处理流程图;
图7示出根据本公开一实施例的基于张量分解的运算装置的框图;
图8示出根据本公开一实施例的基于张量分解的运算装置的框图;
图9示出根据本公开一实施例的基于张量分解的神经网络运算装置的框图;
图10示出根据本公开一实施例的组合处理装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开一实施例的基于张量分解的运算方法的流程图,如图1所示,所述方法应用于张量分解运算装置,所述张量分解运算装置包括控制器单元、运算单元和张量分解单元,所述方法包括:
步骤S10,所述张量分解单元在所述控制器单元的控制下,获取待分解张量和张量分解指令。
在一种可能的实现方式中,控制器单元、运算单元和张量分解单元之间可以两两相连,控制器单元也可以通过张量分解单元与运算单元连接。
控制器单元、运算单元和张量分解单元可以为硬件装置。控制器单元、运算单元和张量分解单元中的其中一个或任意组合可以集成在一个装置中,例如集成在一个芯片中。本公开不限定张量分解运算装置的具体实现方式。
在一种可能的实现方式中,张量可以是多维数组,张量可以包括一阶张量(向量)、二阶张量(矩阵)、三阶张量及高阶张量等。张量分解可以包括:将高阶张量进行张量分解得到低阶的张量分解结果,且分解后的低阶的张量分解结果之和可以近似等于分解前的高阶张量。张量分解在机器学习、数据挖掘、信号处理等领域具有广泛的应用。
在一种可能的实现方式中,待分解张量可以包括三阶张量、四阶张量等不同阶数的待分解张量,可以包括应用于各种分解用途的待分解张量。张量分解指令可以包括不同张量分解算法的张量分解指令。其中,张量分解算法可以包括Tucker分解算法、用奇异值分解(SVD)算法和主成份PCA(Principal Components Analysis)分解算法。本公开不限定待分解张量的阶数、待分解张量的具体表现形式。以及张量分解指令的具体表现形式。
张量分解单元在所述控制器单元的控制下,获取待分解张量和张量分解指令,包括,张量分解单元可以获取控制器单元直接传送的待分解张量和张量分解指令;张量分解单元也可以根据控制器单元发送的获取指令,根据获取指令中的获取地址,在相应的存储器中获取待分解张量和张量分解指令。本公开不限定张量分解单元获取待分解张量和张量分解指令的具体实现方式。
在一种可能的实现方式中,控制器单元可以根据需求,控制张量分解单元获取的待分解张量和相应的张量分解指令。例如,控制器单元需要控制运算单元利用数据1和数据2进行运算,其中,数据1需要进行张量分解。控制器单元可以控制张量分解单元获取数据1和相应的张量分解指令,并控制运算单元获取数据2。张量分解单元根据数据1和相应的张量分解指令,得到数据1的张量分解结果后,将数据1的张量分解结果传送至运算单元。运算单元可以利用数据1的张量分解结果和数据2进行运算。控制器单元也可以控制张量分解单元利用数据1和数据2进行运算,数据1和数据2均需要进行张量分解。控制器单元可以控制张量分解单元获取数据1、张量分解指令1、数据2和张量分解指令2,张量分解单元可以根据数据1和张量分解指令1,得到数据1的张量分解结果后将其传送至运算单元,并根据数据2和张量分解指令2,得到数据2的张量分解结果后将其传送至运算单元。运算单元可以利用数据1的张量分解结果和数据2的张量分解结果进行运算。
在一种可能的实现方式中,张量分解单元可以通过输入输出单元获取待分解张量和张量分解指令。所述输入输出单元可以为一个或多个数据I/O接口或I/O引脚。
步骤S20,所述张量分解单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,计算指令可以包括一个单独的指令,也可以包括多个运算指令的组合。张量分解指令可以为一个计算指令,张量分解单元可以将张量分解指令进行解析,得到多个分解运算指令。张量分解单元可以根据待分解张量和解析得到的分解运算指令进行张量分解运算,得到张量分解结果。本公开具体实施方式不限制张量分解指令的具体表现形式。
张量分解运算装置可以用于机器学习模型中的相关运算。例如,张量分解运算装置可以用于神经网络模型和非神经网络模型的运算。当张量分解运算装置用于神经网络模型的运算时,待分解张量可以包括以下数据中的其中一种或任意组合:输入神经元数据、输出神经元数据、权值和权值的梯度。
步骤S30,所述张量分解单元将所述张量分解结果传送至所述运算单元,以使所述运算单元根据所述张量分解结果进行运算。
在一种可能的实现方式中,张量分解单元可以将计算得到的张量分解结果传送至运算单元。运算单元可以根据张量分解结果进行进一步的运算。
例如,当张量分解运算装置用于神经网络模型的运算时,张量分解运算装置可以在控制器单元的控制下,获取权值和张量分解指令。张量分解运算装置可以根据张量分解指令对权值进行张量分解运算后,得到权值的张量分解结果,并将权值的张量分解结果传送至运算单元。运算单元可以在控制器单元的控制下获取输入神经元数据,并根据输入神经元数据和权值的张量分解结果得到输出神经元数据。
本公开不限定运算单元所使用的算法,运算单元可以根据张量分解结果,根据需求利用选定的算法进行相应的运算。
在本实施例中,张量分解运算装置包括控制器单元、运算单元和张量分解单元,其中张量分解单元在控制器单元的控制下,获取待分解张量和张量分解指令进行张量分解运算,得到张量分解结果,并将张量分解结果传送至运算单元,以使运算单元根据张量分解结果进行运算。控制器单元可以根据需求确定张量分解单元获取到的待分解张量和张量分解指令,使得基于张量分解的运算更加灵活。运算单元根据张量分解单元计算得到的张量分解结果进行运算,可以提高运算结果的准确率,以及提高运算的执行效率。
图2示出根据本公开一实施例的基于张量分解的运算方法的流程图,如图2所示,所述方法中步骤S20包括:
步骤S21,所述张量分解单元根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果。
在一种可能的实现方式中,张量可以是多维数组,张量可以包括一阶张量(向量)、二阶张量(矩阵)、三阶张量及高阶张量等。N阶张量可以被表示成N个向量的外积。可以将张量表示成有限个秩-张量之和。例如,一个m阶张量是由一组具有m个下标的元素组成的一个量,若一个张量可以表示成m个向量的外积,则可以称所述m阶张量为秩-1张量。若一个张量可以表示成若干个秩-1张量的线性组合,且所需要的秩-1张量的数量至少为r,则所述张量的秩为r。
在一种可能的实现方式中,张量X的秩可以定义为用秩-张量之和来表示X所需要的秩-张量的最小个数。传统的张量分解无法直接求解一个任意给定的张量的秩。例如,求解张量的秩选择结果,可以从1开始尝试,直到计算得到一个较好的秩-张量的秩选择结果为止。也可以根据张量分解的应用背景和先验经验,预先设定张量的秩选择结果。
在一种可能的实现方式中,在张量分解中,可以对张量进行秩选择后得到秩选择结果,再根据秩选择结果和张量分解运算指令,完成张量分解运算。张量分解指令可以为计算指令。张量分解单元可以解析张量分解指令后得到秩选择指令和分解运算指令。可以根据需求确定相应的秩选择指令和分解运算指令。秩选择指令和分解运算指令可以采用任意的张量分解算法中的相关指令。本公开不限制秩选择指令和分解运算指令的具体表现形式。
张量分解单元根据待分解张量和秩选择指令进行秩选择,得到秩选择结果。
步骤S22,所述张量分解单元根据所述秩选择结果进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,张量分解单元可以根据秩选择结果和分解运算指令进行张量分解运算,得到张量分解结果。
在本实施例中,张量分解单元可以根据待分解张量和张量分解指令进行秩选择,得到秩选择结果,再根据秩选择结果进行张量分解运算,得到张量分解结果。张量分解单元计算得到秩选择结果,再对秩选择结果进行张量分解计算的计算方式,可以更加高效和更有针对性的进行张量分解运算。
图3示出根据本公开一实施例的基于张量分解的运算方法的流程图,如图3所示,所述张量分解单元包括秩选择模块和张量分解模块,所述方法中步骤S10包括:
步骤S11,所述秩选择模块在所述控制器单元的控制下,获取待分解张量和张量分解指令。
步骤S21包括:
步骤S211,所述秩选择模块根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果。
在一种可能的实现方式中,张量分解单元可以包括秩选择模块和张量分解模块。其中,秩选择模块可以在控制器单元的控制下获取待分解张量和张量分解指令,包括,秩选择模块可以直接获取控制器单元传送的待分解张量和张量分解指令,秩选择模块也可以根据控制器单元发送的获取指令,根据获取指令中的获取地址,在相应的存储器中获取待分解张量和张量分解指令。
秩选择模块可以解析张量分解指令后得到秩选择指令和分解运算指令,并根据待分解张量和秩选择指令进行秩选择,得到秩选择结果。
秩选择模块可以将秩选择结果和分解运算指令传送给张量分解模块。秩选择模块也可以将秩选择结果和分解运算指令传送至控制器单元,由控制器单元控制张量分解模块获取秩选择结果和分解运算指令。
在一种可能的实现方式中,步骤S21,包括所述张量分解单元根据所述待分解张量和所述张量分解指令,利用变分贝叶斯矩阵分解进行秩选择,得到秩选择结果。
在一种可能的实现方式中,在机器学习中,通常需要近似求解不可观测变量的后验概率分布。由于求解过程的复杂性,很难根据贝叶斯理论求得后验概率分布的公式精确解。可以利用变分贝叶斯矩阵分解得到一个近似后验概率分布。变分贝叶斯矩阵分解可以是一种矩阵分解模型。
张量分解中的秩选择结果可以是一个后验概率分布,可以利用变分贝叶斯矩阵分解(variational Bayesian matrix factorization,VBMF)进行求解。张量分解单元可以利用变分贝叶斯矩阵分解进行秩选择后得到秩选择结果。利用变分贝叶斯矩阵分解进行秩选择后,可以得到更加精确的秩选择结果。
在一种可能的实现方式中,步骤S21,包括:
所述张量分解单元根据所述待分解张量、所述张量分解指令和选择精度进行秩选择,得到秩选择结果。
在一种可能的实现方式中,可以根据需求设定选择精度。可以将选择精度存储在控制器单元或张量分解单元中。张量分解单元可以在获取待分解张量和张量分解指令的同时,提取本地存储的选择精度。张量分解单元也可以在控制器单元的控制下,获取待分解张量和张量分解指令的同时获取选择精度。本公开对张量分解单元获取选择精度的具体实现方式不做限定。
张量分解单元可以根据待分解张量、秩选择指令和选择精度进行秩选择,得到秩选择结果。选择精度越高,张量分解单元得到秩选择结果的***开销、(包括访存开销、时延开销和能耗开销)越大。可以通过调整选择精度,张量分解单元可以得到不同精度的秩选择结果,以符合不同的秩选择需求。
步骤S22包括:
步骤S221,所述张量分解模块根据所述秩选择结果进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,张量分解模块可以根据秩选择结果和分解运算指令进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,步骤S22,包括:
所述张量分解单元根据所述待分解张量和所述秩选择结果,利用Tucker-2分解进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,以大小为D×D×S×T的4维张量进行张量分解为例,可以以公式(1)对张量进行Tucker-2分解:
在本实施例中,张量分解单元利用Tucker-2分解进行张量分解运算,可以使得到的张量分解结果更加精准。
在一种可能的实现方式中,所述张量分解单元根据所述待分解张量和所述秩选择结果,利用Tucker分解进行张量分解运算,得到张量分解结果。
其中,是核心张量(core tensor),一个大小为R1×R2×R3×R4的4维张量。U(1)为第一因子矩阵,大小为D×R1,U(2)为第二因子矩阵,大小为D×R2,U(3)为第三因子矩阵,大小为S×R3,U(4)为第四因子矩阵,大小为T×R4。
在一种可能的实现方式中,所述张量分解运算装置还包括存储单元。存储单元可以包括寄存器和/或缓存中的任意一个或组合。其中缓存可以用于存储计算指令和或运算指令。寄存器可以用于存储待计算的数据、计算指令和/或运算指令。缓存可以为高速暂存缓存。存储单元还可以包括数据I/O单元。数据I/O单元可以与外部设备或其他部件连接,完成数据的输入或输出。
在本实施例中,存储单元可以包括寄存器和/或缓存。寄存器和/或缓存可以提高基于张量分解的运算的计算效率。
在一种可能的实现方式中,所述控制器单元包括指令处理单元,所述张量分解单元在所述控制器单元的控制下,获取待分解张量和张量分解指令,包括:
所述张量分解单元在所述指令处理单元的控制下,获取待分解张量和张量分解指令。
在一种可能的实现方式中,所述控制器单元还包括存储队列单元,所述存储队列单元可以存储指令队列,例如,存储队列单元可以存储张量分解指令、所述秩选择指令、所述分解运算指令。指令处理单元可以控制张量分解单元在存储队列单元中获取相应的指令。
在一种可能的实现方式中,所述控制器单元还包括依赖关系处理单元和指令缓存单元,所述依赖关系处理单元用于:
判断待执行的第二运算指令和正在执行的第一运算指令之间的依赖关系,所述第一运算指令包括秩选择指令或分解运算指令,所述第二运算指令包括秩选择指令或分解运算指令;
当所述第二运算指令依赖于所述第一运算指令的计算结果时,将所述第二运算指令存储到所述指令缓存单元;
在所述运算单元执行完所述第一运算指令后,所述依赖关系处理单元在所述指令缓存单元提取所述第二运算指令后传送至所述运算单元,以使所述运算单元根据所述第一运算指令的计算结果执行所述第二运算指令。
在一种可能的实现方式中,待执行的第二运算指令包括存储队列单元存储的指令队列中排在第一位的、马上发射的指令。正在执行的第一运算指令包括存储队列单元存储的指令队列中已经发射的,正在运算单元中执行的指令。第一运算指令可以包括秩选择指令或分解运算指令。第二运算指令可以包括秩选择指令或分解运算指令。
存储队列单元中可以包括多个秩选择指令和多个分解运算指令。例如,存储队列单元中包括10个秩选择指令和10个分解运算指令,其中,10个秩选择指令分别为秩选择指令1、秩选择指令2……秩选择指令10,10个分解运算指令分别为分解运算指令1、分解运算指令2……分解运算指令10。当第一运算指令为秩选择指令1,第二运算指令为分解运算指令1时,依赖关系处理单元判断分解运算指令1依赖于秩选择指令1的计算结果,则依赖关系处理单元将分解运算指令1存储到指令缓存单元。在运算单元执行完秩选择指令1后,依赖关系处理单元在指令缓存单元提取分解运算指令1后传送至运算单元,以使运算单元根据秩选择指令1的计算结果执行分解运算指令1。
当第一运算指令为分解运算指令1,第二运算指令为秩选择指令2时,依赖关系处理单元判断秩选择指令2依赖于分解运算指令1的计算结果,则依赖关系处理单元将秩选择指令2存储到指令缓存单元。在运算单元执行完分解运算指令1后,依赖关系处理单元在指令缓存单元提取秩选择指令2后传送至运算单元,以使运算单元根据分解运算指令1的计算结果执行秩选择指令2。
在一种可能的实现方式中,确定第一运算指令和第二运算指令之间是否存在依赖关系,可以包括:
依据第一运算指令提取第一运算指令中所需数据的第一存储地址区间,依据第二运算指令提取第二运算指令中所需数据的第二存储地址区间;
当第二存储地址区间与第一存储地址区间具有重叠的区域时,第一运算指令与所述第二运算指令具有依赖关系;
当第二存储地址区间与所述第一存储地址区间不具有重叠的区域时,第一运算指令与第二运算指令不具有依赖关系。
在本实施例中,控制器单元还包括依赖关系处理单元和指令缓存单元。依赖关系处理单元和指令缓存单元可以使得秩选择指令和分解运算指令能够按照正确的顺序传送至运算单元,以使运算单元可以根据秩选择指令的执行结果执行分解运算指令,从而提高运算单元的运算效率。
在一种可能的实现方式中,所述运算单元包括主处理电路和多个从处理电路,其中,
所述主处理电路可以将所述张量分解结果发送至目标从处理电路,以使所述目标从处理电路根据所述主处理电路发送的张量分解结果进行张量计算,得到中间结果,所述目标从处理电路包括任一从处理电路;
所述主处理电路根据目标从处理电路发送的中间结果得到所述运算结果。
在一种可能的实现方式中,可以一次对多个同尺寸的张量(张量队列)进行分解。可以在对队列中第一个待分解张量在主处理电路中进行秩选择后,当分解运算指令发送后,主处理电路可以将分解运算指令、秩选择结果和一个待分解张量发送给一个目标从处理电路。由目标从处理电路对该待分解张量进行分解。主处理电路可以将多个待分解张量同时发送给多个目标从处理电路进行并行计算。
在本实施例中,运算单元包括主处理电路和从处理电路,可以通过多个从处理电路对多个待分解张量进行并行计算,提高运算单元的运算效率。
在一种可能的实现方式中,所述多个从处理电路呈矩阵式分布。
在一种可能的实现方式中,多个从处理电路可以成矩阵式分布,例如,多个从处理电路可以成M×N的矩阵式分布。其中,M为矩阵的行数,N为矩阵的列数。
各从处理电路与相邻的其它从处理电路连接。主处理电路可以与各从处理电路连接,也可以与从各处理电路中位于矩阵边缘的从处理电路连接。主处理电路可以与从处理电路双向连接。也可以单向连接。各从处理电路之间可以双向连接,也可以单向连接。
主处理电路可以向所有的从处理电路进行广播,从处理电路可以根据接收到的广播消息,确定自身接收的待分解张量、秩选择结果和分解运算指令,或确定自身需要获取的待分解张量、秩选择结果和分解运算指令的获取地址。
在一种可能的实现方式中,主处理电路可以根据需求确定部分从处理电路处于工作状态。
在本实施例中,多个从处理电路呈矩阵式分布的运算单元结构,可以利用从处理电路的分支效应,提高运算单元的张量分解运算效率,以及提高张量分解结果的准确率。
在一种可能的实现方式中,所述运算单元还包括分支处理电路,所述主处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路,包括:
所述主处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标分支处理电路,所述目标分支处理电路包括任一分支处理电路,以使所述目标分支处理电路将所述待分解张量、所述秩选择结果和所述分解运算指令发送至目标从处理电路。
在一种可能的实现方式中,主处理电路可以与多个分支处理电路连接。各分支处理电路分别连接至一个或多个从处理电路。各分支处理电路与从处理电路之间的连接方式可以相同,也可以不同。
分支处理电路可以不对主处理电路发送的相关数据进行处理,只转发主处理电路的相关数据,也可以对主处理电路发送的相关数据进行处理后,再转发至从处理电路。
主处理电路可以将待分解张量、秩选择结果和分解运算指令传送至相应的分支处理电路,再由分支处理电路将待分解张量、秩选择结果和分解运算指令传送至相应的从处理电路进行张量分解运算。
从处理电路得到张量分解运算的中间结果后,将中间结果传送至分支处理电路。中间结果可以由分支处理电路进行处理后转发至主处理电路,也可以由分支处理电路直接转发至主处理电路。
可以根据需求,确定部分分支处理电路处于工作状态。
在本实施例中,分支处理电路可以使得主处理电路能够将张量分解任务更加合理的分配至不同的从处理电路。张量分解运算装置的处理效率更高,张量处理运算的实现方式也更加灵活。
在一种可能的实现方式中,所述主处理电路包括主处理控制器单元,所述方法还包括:
所述主处理控制器单元对所述秩选择指令进行译码,得到微秩选择指令;和/或
所述主处理控制器单元对所述分解运算指令进行译码,得到微分解运算指令。
在一种可能的实现方式中,将运算指令进行译码后,可以得到多个微运算指令。秩选择指令和分解运算指令可以是一个运算指令,也可以是多个运算指令的组合。
主处理电路中的主处理控制器单元,可以用于秩选择指令和/或分解运算指令进行译码,得到相应的微运算指令,包括微秩选择指令和微分解运算指令。微运算指令可以能被进一步解码为各部件、各单元或各处理电路的控制信号。
在本实施例中,主处理电路中的主处理控制器单元可以提高主处理电路的处理能力,提高张量分解运算装置的整体运算能力和处理效率。
在一种可能的实现方式中,所述从处理电路包括从处理控制器单元,所述方法还包括:
所述从处理控制器单元对所述秩选择指令进行译码,得到微秩选择指令;和/或
所述从处理控制器单元对所述分解运算指令进行译码,得到微分解运算指令。
在一种可能的实现方式中,从处理电路中的从处理控制器单元,可以用于秩选择指令和/或分解运算指令进行译码,得到相应的微运算指令,包括微秩选择指令和微分解运算指令。微运算指令可以能被进一步解码为各部件、各单元或各处理电路的控制信号。
在本实施例中,从处理电路中的从处理控制器单元可以提高从处理电路的处理能力,提高张量分解运算装置的整体运算能力和处理效率。
在一种可能的实现方式中,所述张量分解指令包括操作域和操作码,所述操作码包括张量分解指令的操作码,所述操作域包括存储张量分解指令的起始地址和张量分解指令的长度。
在一种可能的实现方式中,所述张量分解指令包括操作域和操作码,所述操作码包括张量分解指令的操作码,所述操作域包括存储张量分解指令的起始地址和张量分解指令的长度。
在一种可能的实现方式中,张量分解指令可以包括一个操作码和一个或多个操作域。其中,操作域可以是寄存器或立即数。
在一种可能的实现方式中,当操作域为寄存器时,寄存器可以为片外存储器,也可以为片内存储器。寄存器用于存储数据,可以用于存储n维数据,n为大于等于1的整数。例如,n=1时,为1维数据,即向量,如n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维张量。
图4示出根据本公开一实施例的张量分解运算方法中张量分解指令的结构示意图,计算指令或运算指令可以为神经网络中的计算指令或运算指令,如图4所示,操作码可以包括计算、输入/输出等。当操作码为计算时,可以根据寄存器0中的输入数据的起始地址,结合在寄存器1中获取的输入数据的长度,得到完整的输入数据用于神经网络的计算。或者可以根据寄存器0中的权值的起始地址,结合在寄存器1中获取的权值长度,可以得到完整的权值用于神经网络的计算。
当计算指令和运算指令为张量分解指令、秩选择指令或分解运算指令时,可以根据需求确定不同的寄存器存储各指令的起始地址和长度。如图4所示,可以根据寄存器0中的秩选择指令起始地址,结合在寄存器1中获取的秩选择指令长度,得到完整的秩选择指令。
在本实施例中,张量分解指令可以包括操作码和操作域。利用操作码和操作域可以灵活的设置张量分解指令的存储方式和组成方式。
在一种可能的实现方式中,本公开实施例提供一种基于张量分解的神经网络运算方法,所述方法包括:
在神经网络运算过程中,采用上述任一项所述的基于张量分解的运算方法对所述神经网络的运算数据进行张量分解,得到所述运算数据的张量分解结果,并根据所述运算数据的张量分解结果完成所述神经网络运算,
所述神经网络的运算数据包括以下数据中的其中一种或任意组合:输入神经元数据、输出神经元数据、权值和权值的梯度。
在一种可能的实现方式中,神经网络是一种模仿生物神经网络的结构和功能的数学模型或者计算模型。神经网络可以包括输入层、中间层和输出层。输入层负责接收来自外的输入数据,并将输入数据传递给中间层。中间层负责信息交换,根据信息变化能力的需求,中间层可以设计为单隐藏层或多隐藏层。中间层将输出结果传递到输出层进行进一步处理后,得到神经网络的输出结果。输入层、中间层和输出层都可以包括若干神经元,各神经元之间可以用带可变权重的有向连接。神经网络通过对已知信息的反复学习训练,通过逐步调整改变神经元连接权重的方法,达到建立模拟输入输出之间关系模型的目的。训练好的神经网络可以利用模拟好的输入输出之间的关系模型,检测输入信息,并给出与输入信息对应的输出信息。
可以以卷积神经网络为例,设一个卷积神经网络有L层,K=1,2,...,L-1,对于第K层和第K+1层来说,在神经网络运算的正向传播过程中,当第K层执行完成之后,第K层输出神经元数据可以作为第K+1层的输入神经元数据。在神经网络运算的正向传播过程中,输入神经元数据和权值,都可以作为待分解张量进行张量分解,可以根据权值和/或输入神经元数据的张量分解结果进行计算,得到输出神经元数据。对输入神经元数据和/或权值进行张量分解,可以提高神经网络的计算效率和计算结果的准确度。
在神经网络运算的反向传播过程中,当第K+1层执行完成之后,第K+1层输出神经元数据可以作为第K层的输入神经元数据,并根据各层的权值的梯度,对权值进行更新后,完成一次反向传播。在神经网络运算的反向传播过程中,可以对权值的梯度进行张量分解,得到梯度的张量分解结果后,利用梯度的张量分解结果完成神经网络运算的反向传播。对权值的梯度进行张量分解后进行反向传播,可以提高神经网络的训练效率。
当基于张量分解的运算方法应用于神经网络中时,张量分解运算装置可以是硬件装置,可以集成在神经网络的硬件装置中,也可以独立设置于神经网络的硬件装置外。
在本实施例中,可以将基于张量分解的运算方法应用于神经网络中,将神经网络的运算数据中的其中一种或任意组合作为待分解张量。通过对神经网络的运算数据进行张量分解,可以提高神经网络运算的正向传播和反向传播的计算效率,并提高神经网络输出结果的准确率。
图5示出根据本公开一实施例的基于张量分解的神经网络运算方法的流程图,如图5所示,所述方法应用于神经网络,所述方法包括:
步骤S1,在所述神经网络运算的正向传播过程中,获取所述输入神经元数据和所述权值。
步骤S2,采用上述任一项所述的基于张量分解的运算方法对所述权值进行张量分解,得到所述权值的张量分解结果。
步骤S3,根据所述输入神经元数据和所述权值的张量分解结果,得到所述输出神经元数据。
在一种可能的实现方式中,权值可以用矩阵或多维数组来表示。例如权值可以是三维数组或四维数组。本公开中的权值可以是神经网络中任意体现形式的权值。
为提高处理效率,神经网络中的各层可以共享权重。例如,在对图片进行检测的神经网络中,如果设定的局部检测感知区域为5*5,则隐藏层1的神经元具有5*5的权值,并且隐藏层1的所有神经元对应的权值可以是相同的。可以将神经网络中各层的权值,利用基于张量分解的运算方法进行张量分解。
可以对权值利用基于张量分解的运算方法计算得到权值的张量分解结果,例如,对于神经网络中的卷积层,权值可以表示为卷积核。可以将输入神经元数据与卷积核进行卷积运算得到输出神经元数据。卷积核可以是四维卷积核。可以对卷积核进行张量分解,在不同的空间维度上得到卷积核的张量分解结果,再利用不同空间维度上的卷积核的张量分解结果和输入神经元数据进行卷积计算,最终得到输出神经元数据。
针对神经网络中的不同层,可以利用不同的张量分解算法对权值进行张量分解。例如,可以利用CP(Canonical Polyadic Decomposition)分解算法或Tucker分解算法,对卷积层的权值进行张量分解,也可以利用SVD(Singular Value Decomposition)分解算法对全连接层的权值进行张量分解。
在本实施例中,利用权值的张量分解结果和输入神经元数据计算得到输出神经元数据,比直接利用权值和输入神经元数据计算得到输出神经元数据,计算效率更高,计算速度更快。
在一种可能的实现方式中所述权值的张量分解结果包括核心张量、第一因子矩阵和第二因子矩阵,根据所述输入神经元数据和所述权值的张量分解结果,得到所述输出神经元数据,包括:
根据所述输入神经元数据和所述第一因子矩阵,得到第一中间张量;
根据所述第一中间张量和所述核心张量,得到第二中间张量;
根据所述第二中间张量和所述第二因子矩阵,得到所述输出神经元数据。
在一种可能的实现方式中,可以以神经网络中的卷积层为例,可以对权值(卷积核)进行分解。假设卷积核是一个大小为D×D×S×T的4维张量,输入神经元数据为χ,大小为H×W×S。输出神经元数据为大小为H′×W′×T,则可以利用公式(3)计算得到输出神经元数据:
其中,hi=(h′-1)Δ+i-P,ωj=(ω′-1)Δ+j-P。
可以利用公式(1)对卷积核进行Tucker-2分解:
可以利用得到公式(4)-(6)得到输出数据,
可见,以Tucker-2进行张量分解,将卷积核进行张量分解后进行运算,压缩率M可以利用公式(7)进行计算,加速比E以利用公式(8)进行计算,其压缩率更高,加速比更快:
在本实施例中,利用权值的张量分解结果和输入神经元数据计算得到输出神经元数据,比利用权值和输入神经元数据计算得到输出神经元数据,卷积计算的压缩率更高,加速比更快。
在一种可能的实现方式中,所述基于张量分解的神经网络运算方法还包括:
采用上述任一项所述的基于张量分解的运算方法对所述输入神经元数据进行张量分解,得到所述输入神经元数据的张量分解结果;
根据所述权值和所述输入神经元数据的张量分解结果,得到所述输出神经元数据。
在一种可能的实现方式中,在神经网络各层的运算过程中,上一层输出神经元数据,可以作为下一层的输入神经元数据。输入神经元数据可以用矩阵或多维数组来表示。本公开中的输入神经元数据可以是神经网络中任意体现形式的输入神经元数据。
可以将输入神经元数据进行张量分解,利用输入神经元数据的张量分解结果和权值计算得到输出数据。也可以将输入神经元数据和权值都进行张量分解,利用输入神经元数据的张量分解结果和权值的张量分解结果计算得到输出数据。
在本实施例中,利用输入神经元数据的张量分解结果和权值计算得到输出神经元数据,计算速率更快,计算结果也更加准确。
在一种可能的实现方式中,所述基于张量分解的神经网络运算方法还包括:
在所述神经网络运算的反向传播过程中,获取所述权值的梯度,所述权值的梯度包括利用梯度下降算法对所述权值进行计算后得到的结果;
采用上述任一项所述的基于张量分解的运算方法对所述权值的梯度进行张量分解,得到梯度张量分解结果;
根据所述梯度张量分解结果,对所述权值进行调整。
在一种可能的实现方式中,在神经网络的训练过程中,可以利用反向传播算法计算权重的梯度。例如可以利用梯度下降算法计算权值的梯度。可以对权值的梯度进行张量分解,再利用梯度的张量分解结果,对神经网络中层的权值进行调整,最终完成神经网络运算的反向传播。
在本实施例中,利用梯度的张量分解结果对权值进行调整,可以提高神经网络反向传播的运算速度。
在一种可能的实现方式中,根据所述梯度张量分解结果,对所述权值进行调整,包括:
根据所述梯度张量分解结果和调整学习率,对所述权值进行调整,所述调整学习率包括按照预设的调整规则调整后的学习率,
所述预设的调整规则包括以下规则中的其中一种或任意组合:
按照预设的步长调整学习率,
按照预设缩放值调整学习率;
按照预设调整函数调整学习率。
在一种可能的实现方式中,在神经网络的训练过程中,可以包括调优(Fine-tuning)的步骤。当神经网络的训练次数达到预设的迭代次数,或神经网络的输出神经元数据达到预设阈值后(预设阈值可以是正确率),可以按照预设的调整规则对学习率(learning rate)进行调整得到调整学习率,再根据调整学习率和梯度张量分解结果,完成神经网络的训练。
例如,按照预设的步长调整学习率包括:学习率对原步长(梯度下降法中的梯度的长度)做调整,如果学习率为0.1,则梯度下降法中每次调整的步长为0.1*梯度。
在本实施例中,可以根据梯度的张量分解结果和调整学习率对权值进行调整,以完成对神经网络运算的反向传播。调整学习率和梯度的张量分解结果相结合,可以提高神经网络的训练效率。
图6示出根据本公开一实施例的神经网络的数据处理流程图,如图6所示,图中实线箭头表示神经网络运算的正向传播过程,虚线箭头表示神经网络运算的反向传播过程。图中上半部分为神经网络中的第K层,下半部分为神经网络中的第K+1层。
在神经网络运算的正向传播过程中,第K层输入神经元数据和权值,进行矩阵乘法或卷积运算后,得到第K层输出神经元数据。第K层输出神经元数据经过层间操作后,成为第K+1层输入神经元数据。第K+1层输入神经元数据和权值进行矩阵乘法或卷积运算后,得到第K+1层输出神经元数据。
在神经网络运算的正向传播过程中,第K+1层神经元的调整前的权值和权值的梯度,进行矩阵乘法或卷积运算后,得到第K+1层神经元的调整后的权值。第K+1层神经元的调整后的权值经过层间操作后,成为第K层神经元的调整前的权值。第K层神经元的调整前的权值和权值的梯度进行矩阵乘法或卷积运算后,得到第K层神经元的调整后的权值。
图7示出根据本公开一实施例的基于张量分解的运算装置的框图,如图7所示,所述张量分解运算装置包括控制器单元10、运算单元30和张量分解单元20,所述张量分解单元20用于:
在所述控制器单元10的控制下,获取待分解张量和张量分解指令;
根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果;
将所述张量分解结果传送至所述运算单元30,以使所述运算单元30根据所述张量分解结果进行运算。
图8示出根据本公开一实施例的基于张量分解的运算装置的框图,如图8所示,在一种可能的实现方式中,所述张量分解单元20用于根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述张量分解单元20用于:
根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果;
根据所述秩选择结果进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述张量分解单元20包括秩选择模块,所述张量分解单元20用于在所述控制器单元的控制下,获取待分解张量和张量分解指令,包括:
所述秩选择模块用于在所述控制器单元的控制下,获取待分解张量和张量分解指令;
所述张量分解单元用于根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果,包括:
所述秩选择模块用于根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述张量分解单元20用于根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果,包括:
所述张量分解单元20用于根据所述待分解张量和所述张量分解指令,利用变分贝叶斯矩阵分解进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述张量分解单元20用于根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果,包括:
所述张量分解单元20用于根据所述待分解张量、所述张量分解指令和选择精度进行秩选择,得到秩选择结果。
在一种可能的实现方式中,所述张量分解单元20包括分解运算模块,所述张量分解单元用于根据所述秩选择结果进行张量分解运算,得到张量分解结果,包括:
所述分解运算模块用于根据所述秩选择结果进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,所述张量分解单元20用于根据所述待分解张量和所述秩选择结果进行张量分解运算,得到张量分解结果,包括:
所述张量分解单元20用于根据所述秩选择结果,利用Tucker-2分解进行张量分解运算,得到张量分解结果。
在一种可能的实现方式中,本公开提供一种基于张量分解的神经网络运算装置,所述装置应用于神经网络,所述装置用于:
在神经网络的运算过程中,采用上述任一项所述的基于张量分解的运算装置对所述神经网络的运算数据进行张量分解,得到所述运算数据的张量分解结果,并根据所述运算数据的张量分解结果完成运算,
所述神经网络的运算数据包括以下数据中的其中一种或任意组合:输入神经元数据、输出神经元数据、权值和权值的梯度。
图9示出根据本公开一实施例的基于张量分解的神经网络运算装置的框图,如图9所示,在一种可能的实现方式中,所述装置应用于神经网络,所述装置包括:
获取模块1,用于在所述神经网络运算的正向传播过程中,获取所述输入神经元数据和所述权值;
第一张量分解模块2,用于采用上述任一项所述的基于张量分解的运算装置对所述权值进行张量分解,得到所述权值的张量分解结果;
第一计算模块3,用于根据所述输入神经元数据和所述权值的张量分解结果,计算所述输出神经元数据。
在一种可能的实现方式中,所述权值的张量分解结果包括核心张量、第一因子矩阵和第二因子矩阵,所述第一计算模块3用于:
根据所述输入神经元数据和所述第一因子矩阵,得到第一中间张量;
根据所述第一中间张量和所述核心张量,得到第二中间张量;
根据所述第二中间张量和所述第二因子矩阵,得到所述输出神经元数据。
在一种可能的实现方式中,所述装置包括:
第二张量分解模块,用于采用上述任一项所述的基于张量分解的运算装置对所述输入神经元数据进行张量分解,得到所述输入神经元数据的张量分解结果;
第二计算模块,用于根据所述神经元的权值和所述输入神经元数据的张量分解结果,得到所述输出神经元数据。
在一种可能的实现方式中,所述装置还包括:
梯度获取模块,用于在所述神经网络运算的反向传播过程中,获取所述权值的梯度,所述权值的梯度包括利用梯度下降算法对所述权值进行计算后得到的结果;
第三张量分解模块,用于采用上述任一项所述的基于张量分解的运算装置对所述权值的梯度进行张量分解,得到梯度张量分解结果;
权值调整模块,用于根据所述梯度张量分解结果,对所述权值进行调整。
在一种可能的实现方式中,本公开还提供基于张量分解的神经网络运算装置。基于张量分解的神经网络运算装置包括一个或多个本公开中的基于张量分解的运算装置。基于张量分解的神经网络运算装置用于从其他处理装置中获取待运算数据和控制信息,执行指定的神经网络运算,执行结果通过I/O接口传递给***设备。***设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当基于张量分解的神经网络运算装置包含一个以上基于张量分解的运算装置时,基于张量分解的运算装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算。此时,可以共享同一控制***,也可以有各自独立的控制***;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该基于张量分解的神经网络运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
图10示出根据本公开一实施例的组合处理装置的框图,如图10所示,所述组合处理装置,包括上述的基于张量分解的神经网络运算装置,通用互联接口,和其他处理装置。
基于张量分解的神经网络运算装置与其他处理装置进行交互,共同完成用户指定的操作。其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为基于张量分解的神经网络运算装置与外部数据和控制的接口,包括数据搬运,完成对本张量分解的神经网络运算装置的开启、停止等基本控制;其他处理装置也可以和基于张量分解的神经网络运算装置协作共同完成运算任务。通用互联接口,用于在所述基于张量分解的神经网络运算装置与其他处理装置间传输数据和控制指令。该基于张量分解的神经网络运算装置从其他处理装置中获取所需的输入数据,写入基于张量分解的神经网络运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入基于张量分解的神经网络运算装置片上的控制缓存;也可以读取基于张量分解的神经网络运算装置的存储模块中的数据并传输给其他处理装置。
组合处理装置还可以包括存储装置,存储装置分别与所述基于张量分解的神经网络运算装置和所述其他处理装置连接。存储装置用于保存在所述基于张量分解的神经网络运算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本基于张量分解的神经网络运算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上***,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互本公开联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一种可能的实现方式中,本公开还提供神经网络芯片,其包括了上述基于张量分解的神经网络运算装置或组合处理装置。
在一种可能的实现方式中,本公开还提供芯片封装结构,其包括了上述芯片。
在一种可能的实现方式中,本公开还提供板卡,其包括了上述芯片封装结构。
在一种可能的实现方式中,本公开还提供电子设备,其包括了上述板卡。
电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
这里参照根据本公开实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
附图中的流程图和框图显示了根据本公开的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (25)
1.一种基于张量分解的运算方法,其特征在于,所述方法应用于张量分解运算装置,所述张量分解运算装置包括控制器单元、运算单元和张量分解单元,所述方法包括:
所述张量分解单元在所述控制器单元的控制下,获取待分解张量和张量分解指令;
所述张量分解单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果;
所述张量分解单元将所述张量分解结果传送至所述运算单元,以使所述运算单元根据所述张量分解结果进行运算。
2.根据权利要求1所述的方法,其特征在于,所述张量分解单元根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述张量分解单元根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果;
所述张量分解单元根据所述秩选择结果进行张量分解运算,得到张量分解结果。
3.根据权利要求2所述的方法,其特征在于,所述张量分解单元根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果,包括:
所述张量分解单元根据所述待分解张量和所述张量分解指令,利用变分贝叶斯矩阵分解进行秩选择,得到秩选择结果。
4.根据权利要求2或3所述的方法,其特征在于,所述张量分解单元根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果,包括:
所述张量分解单元根据所述待分解张量、所述张量分解指令和选择精度进行秩选择,得到秩选择结果。
5.根据权利要求2所述的方法,其特征在于,所述张量分解单元根据所述待分解张量和所述秩选择结果进行张量分解运算,得到张量分解结果,包括:
所述张量分解单元根据所述秩选择结果,利用Tucker-2分解进行张量分解运算,得到张量分解结果。
6.根据权利要求2所述的方法,其特征在于,所述张量分解单元包括秩选择模块,所述张量分解单元在所述控制器单元的控制下,获取待分解张量和张量分解指令,包括:
所述秩选择模块在所述控制器单元的控制下,获取待分解张量和张量分解指令;
所述张量分解单元根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果,包括:
所述秩选择模块根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果。
7.根据权利要求2所述的方法,其特征在于,所述张量分解单元包括张量分解模块,所述张量分解单元根据所述秩选择结果进行张量分解运算,得到张量分解结果,包括:
所述张量分解模块根据所述秩选择结果进行张量分解运算,得到张量分解结果。
8.一种基于张量分解的神经网络运算方法,其特征在于,所述方法包括:
在神经网络运算过程中,采用如权利要求1至7中任一项所述的基于张量分解的运算方法对所述神经网络的运算数据进行张量分解,得到所述运算数据的张量分解结果,并根据所述运算数据的张量分解结果完成所述神经网络运算,
所述神经网络的运算数据包括以下数据中的其中一种或任意组合:输入神经元数据、输出神经元数据、权值和权值的梯度。
9.根据权利要求8所述的方法,其特征在于,所述方法包括:
在所述神经网络运算的正向传播过程中,获取所述输入神经元数据和所述权值;
采用如权利要求1至7中任一项所述的基于张量分解的运算方法对所述权值进行张量分解,得到所述权值的张量分解结果;
根据所述输入神经元数据和所述权值的张量分解结果,得到所述输出神经元数据。
10.根据权利要求9所述的方法,其特征在于,所述权值的张量分解结果包括核心张量、第一因子矩阵和第二因子矩阵,根据所述输入神经元数据和所述权值的张量分解结果,得到所述输出神经元数据,包括:
根据所述输入神经元数据和所述第一因子矩阵,得到第一中间张量;
根据所述第一中间张量和所述核心张量,得到第二中间张量;
根据所述第二中间张量和所述第二因子矩阵,得到所述输出神经元数据。
11.根据权利要求8所述的方法,其特征在于,所述方法包括:
采用如权利要求1至7中任一项所述的基于张量分解的运算方法对所述输入神经元数据进行张量分解,得到所述输入神经元数据的张量分解结果;
根据所述权值和所述输入神经元数据的张量分解结果,得到所述输出神经元数据。
12.根据权利要求8至11中任一项所述的方法,其特征在于,所述方法还包括:
在所述神经网络运算的反向传播过程中,获取所述权值的梯度,所述权值的梯度包括利用梯度下降算法对所述权值进行计算后得到的结果;
采用如权利要求1至7中任一项所述的基于张量分解的运算方法对所述权值的梯度进行张量分解,得到梯度张量分解结果;
根据所述梯度张量分解结果,对所述权值进行调整。
13.根据权利要求12所述的方法,其特征在于,根据所述梯度张量分解结果,对所述权值进行调整,包括:
根据所述梯度张量分解结果和调整学习率,对所述权值进行调整,所述调整学习率包括按照预设的调整规则调整后的学习率,
所述预设的调整规则包括以下规则中的其中一种或任意组合:
按照预设的步长调整学习率,
按照预设缩放值调整学习率;
按照预设调整函数调整学习率。
14.一种基于张量分解的运算装置,其特征在于,所述张量分解运算装置包括控制器单元、运算单元和张量分解单元,所述张量分解单元用于:
在所述控制器单元的控制下,获取待分解张量和张量分解指令;
根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果;
将所述张量分解结果传送至所述运算单元,以使所述运算单元根据所述张量分解结果进行运算。
15.根据权利要求14所述的装置,其特征在于,所述张量分解单元用于根据所述待分解张量和所述张量分解指令进行张量分解运算,得到张量分解结果,包括:
所述张量分解单元用于:
根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果;
根据所述秩选择结果进行张量分解运算,得到张量分解结果。
16.根据权利要求15所述的装置,其特征在于,所述张量分解单元包括秩选择模块,所述张量分解单元用于在所述控制器单元的控制下,获取待分解张量和张量分解指令,包括:
所述秩选择模块用于在所述控制器单元的控制下,获取待分解张量和张量分解指令;
所述张量分解单元用于根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果,包括:
所述秩选择模块用于根据所述待分解张量和所述张量分解指令进行秩选择,得到秩选择结果。
17.根据权利要求15所述的装置,其特征在于,所述张量分解单元包括分解运算模块,所述张量分解单元用于根据所述秩选择结果进行张量分解运算,得到张量分解结果,包括:
所述分解运算模块用于根据所述秩选择结果进行张量分解运算,得到张量分解结果。
18.一种基于张量分解的神经网络运算装置,其特征在于,所述装置应用于神经网络,所述装置用于:
在神经网络运算过程中,采用如权利要求14至17中任一项所述的基于张量分解的运算装置对所述神经网络的运算数据进行张量分解,得到所述运算数据的张量分解结果,并根据所述运算数据的张量分解结果完成所述神经网络运算,
所述神经网络的运算数据包括以下数据中的其中一种或任意组合:输入神经元数据、输出神经元数据、权值和权值的梯度。
19.根据权利要求18所述的装置,其特征在于,所述装置包括:
获取模块,用于在所述神经网络运算的正向传播过程中,获取所述输入神经元数据和所述权值;
第一张量分解模块,用于采用如权利要求14至17中任一项所述的基于张量分解的运算装置对所述权值进行张量分解,得到所述权值的张量分解结果;
第一计算模块,用于根据所述输入神经元数据和所述权值的张量分解结果,得到所述输出神经元数据。
20.根据权利要求19所述的装置,其特征在于,所述权值的张量分解结果包括核心张量、第一因子矩阵和第二因子矩阵,所述第一计算模块用于:
根据所述输入神经元数据和所述第一因子矩阵,得到第一中间张量;
根据所述第一中间张量和所述核心张量,得到第二中间张量;
根据所述第二中间张量和所述第二因子矩阵,得到所述输出神经元数据。
21.根据权利要求18至20中任一项所述的装置,其特征在于,所述装置包括:
第二张量分解模块,用于采用如权利要求14至17中任一项所述的基于张量分解的运算装置对所述输入神经元数据进行张量分解,得到所述输入神经元数据的张量分解结果;
第二计算模块,用于根据所述神经元的权值和所述输入神经元数据的张量分解结果,得到所述输出神经元数据。
22.根据权利要求18所述的装置,其特征在于,所述装置包括:
梯度获取模块,用于在所述神经网络运算的反向传播过程中,获取所述权值的梯度,所述权值的梯度包括利用梯度下降算法对所述权值进行计算后得到的结果;
第三张量分解模块,用于采用如权利要求14至17中任一项所述的基于张量分解的运算装置对所述权值的梯度进行张量分解,得到梯度张量分解结果;
权值调整模块,用于根据所述梯度张量分解结果,对所述权值进行调整。
23.一种组合运算装置,其特征在于,所述组合运算装置包括一个或多个如权利要求18至22中任一项所述的基于张量分解的神经网络运算装置,通用互联接口和其他处理装置;
所述基于张量分解的神经网络运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
24.一种神经网络芯片,其特征在于,所述神经网络芯片包括:
如权利要求14-17中任一项所述的基于张量分解的运算装置;或
如权利要求18-22中任一项所述的基于张量分解的神经网络运算装置;或
如权利要求23所述的组合运算装置。
25.一种电子设备,其特征在于,所述电子设备包括:
如权利要求14-17中任一项所述的基于张量分解的运算装置;或
如权利要求18-22中任一项所述的基于张量分解的神经网络运算装置;或
如权利要求23所述的组合运算装置;或
如权利要求24所述的神经网络芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810682056.8A CN110647973A (zh) | 2018-06-27 | 2018-06-27 | 运算方法及相关方法和产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810682056.8A CN110647973A (zh) | 2018-06-27 | 2018-06-27 | 运算方法及相关方法和产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110647973A true CN110647973A (zh) | 2020-01-03 |
Family
ID=69009075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810682056.8A Pending CN110647973A (zh) | 2018-06-27 | 2018-06-27 | 运算方法及相关方法和产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647973A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113253616A (zh) * | 2021-06-29 | 2021-08-13 | 中国科学院自动化研究所 | 快时变飞行器大包线飞行控制方法与装置 |
CN113449859A (zh) * | 2020-03-27 | 2021-09-28 | 华为技术有限公司 | 一种数据处理方法及其装置 |
WO2022178660A1 (zh) * | 2021-02-23 | 2022-09-01 | 华为技术有限公司 | 一种数据处理方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106127297A (zh) * | 2016-06-02 | 2016-11-16 | 中国科学院自动化研究所 | 基于张量分解的深度卷积神经网络的加速与压缩方法 |
CN107329936A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
CN107516129A (zh) * | 2017-08-01 | 2017-12-26 | 北京大学 | 基于维度自适应的Tucker分解的深度网络压缩方法 |
CN107798385A (zh) * | 2017-12-08 | 2018-03-13 | 电子科技大学 | 基于块张量分解的循环神经网络稀疏连接方法 |
CN107832804A (zh) * | 2017-10-30 | 2018-03-23 | 上海寒武纪信息科技有限公司 | 一种信息处理方法及相关产品 |
CN107944556A (zh) * | 2017-12-12 | 2018-04-20 | 电子科技大学 | 基于块项张量分解的深度神经网络压缩方法 |
-
2018
- 2018-06-27 CN CN201810682056.8A patent/CN110647973A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329936A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
CN106127297A (zh) * | 2016-06-02 | 2016-11-16 | 中国科学院自动化研究所 | 基于张量分解的深度卷积神经网络的加速与压缩方法 |
CN107516129A (zh) * | 2017-08-01 | 2017-12-26 | 北京大学 | 基于维度自适应的Tucker分解的深度网络压缩方法 |
CN107832804A (zh) * | 2017-10-30 | 2018-03-23 | 上海寒武纪信息科技有限公司 | 一种信息处理方法及相关产品 |
CN107798385A (zh) * | 2017-12-08 | 2018-03-13 | 电子科技大学 | 基于块张量分解的循环神经网络稀疏连接方法 |
CN107944556A (zh) * | 2017-12-12 | 2018-04-20 | 电子科技大学 | 基于块项张量分解的深度神经网络压缩方法 |
Non-Patent Citations (1)
Title |
---|
YONG-DEOK KIM等: "COMPRESSION OF DEEP CONVOLUTIONAL NEURAL NETWORKS FOR FAST AND LOW POWER MOBILE APPLICATIONS", 《ARXIV:1511.06530V2 [CS.CV]》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113449859A (zh) * | 2020-03-27 | 2021-09-28 | 华为技术有限公司 | 一种数据处理方法及其装置 |
WO2022178660A1 (zh) * | 2021-02-23 | 2022-09-01 | 华为技术有限公司 | 一种数据处理方法、装置、设备及介质 |
CN113253616A (zh) * | 2021-06-29 | 2021-08-13 | 中国科学院自动化研究所 | 快时变飞行器大包线飞行控制方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540574B2 (en) | Image compression method and related device | |
CN110050267B (zh) | 用于数据管理的***和方法 | |
CN108229654B (zh) | 神经网络卷积运算装置及方法 | |
CN109101273B (zh) | 神经网络处理装置及其执行向量最大值指令的方法 | |
JP6826181B2 (ja) | 計算装置と計算方法 | |
EP3451241A1 (en) | Device and method for performing training of convolutional neural network | |
JP2022540749A (ja) | シャッフルネットに類似したニューラルネットワークのチャネルにわたってシフトベースの情報混合を行うシステムおよび方法 | |
EP3451157A1 (en) | Device and method for performing forward operation of convolutional neural network | |
CN111095294A (zh) | 深度视觉处理器 | |
KR20190003612A (ko) | 완전연결층 신경망 역방향 트레이닝 실행용 장치와 방법 | |
EP3564863B1 (en) | Apparatus for executing lstm neural network operation, and operational method | |
US10853722B2 (en) | Apparatus for executing LSTM neural network operation, and operational method | |
US11385864B2 (en) | Counter based multiply-and-accumulate circuit for neural network | |
US20190147342A1 (en) | Deep neural network processor with interleaved backpropagation | |
US20210133854A1 (en) | Information processing method and terminal device | |
CN113065997B (zh) | 一种图像处理方法、神经网络的训练方法以及相关设备 | |
CN110647973A (zh) | 运算方法及相关方法和产品 | |
CN111027691A (zh) | 用于神经网络运算的计算装置及其集成电路板卡 | |
JP2022539662A (ja) | 分散処理を加速させるパイプライン並列化のためのシステムおよび方法 | |
JP2022539661A (ja) | 電力効率の良い乗累算回路類 | |
CN113627163A (zh) | 一种注意力模型、特征提取方法及相关装置 | |
CN114925320A (zh) | 一种数据处理方法及相关装置 | |
CN110647356A (zh) | 运算装置及相关产品 | |
JP2022540301A (ja) | 逆畳み込みのための最適化 | |
WO2023122896A1 (zh) | 一种数据处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant after: Zhongke Cambrian Technology Co.,Ltd. Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant before: Beijing Zhongke Cambrian Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200103 |
|
RJ01 | Rejection of invention patent application after publication |