CN110188870B - 用于执行人工神经网络自学习运算的装置和方法 - Google Patents

用于执行人工神经网络自学习运算的装置和方法 Download PDF

Info

Publication number
CN110188870B
CN110188870B CN201910402047.3A CN201910402047A CN110188870B CN 110188870 B CN110188870 B CN 110188870B CN 201910402047 A CN201910402047 A CN 201910402047A CN 110188870 B CN110188870 B CN 110188870B
Authority
CN
China
Prior art keywords
module
control signal
intermediate value
slave
hidden layer
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.)
Active
Application number
CN201910402047.3A
Other languages
English (en)
Other versions
CN110188870A (zh
Inventor
李震
郭崎
陈云霁
陈天石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN201910402047.3A priority Critical patent/CN110188870B/zh
Publication of CN110188870A publication Critical patent/CN110188870A/zh
Application granted granted Critical
Publication of CN110188870B publication Critical patent/CN110188870B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

本公开提供了一种用于执行人工神经网络自学习运算的装置和方法,所述装置包括控制器单元、互连模块、主运算模块、以及多个从运算模块。本公开可对多层神经网络的自学习预训练按照逐层训练的训练方式,对于每一层网络,本公开经过多次运算迭代直至权重更新小于一定阈值后,该层网络的自学习预训练完成。每次迭代过程可分为四个阶段,前三个阶段分别计算生成一阶隐层中间值.一阶可见层中间值和二阶隐层中间值,最后一阶段则利用前三个阶段的中间值更新权重。

Description

用于执行人工神经网络自学习运算的装置和方法
技术领域
本公开涉及人工神经网络技术,具体地涉及一种用于执行人工神经网络自学习运算的装置和方法。
背景技术
多层人工神经网络被广泛应用于模式识别,图像处理,函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。
典型的多层人工神经网络训练方法为反向传播(BP)算法。此方法是监督学习的代表类型,在训练过程中需要大量的带标签的训练样本,然而样本的收集所需的成本代价很高。同时,此方法的训练过程中,误差校正信号随着传播层数的增加而减小,训练容易收敛于局部最小值而且收敛速度较慢。因此,先采用收敛速度快且不需带标签训练样本的自学习算法对网络参数预训练,然后再采用反向传播训练进行微调多层神经网络成为一个新的热点。其中,作为预训练的自学习运算尤为重要。
一种支持多层人工神经网络自学习运算的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把多层人工神经网络预训练运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销
另一种支持多层人工神经网络预训练的已知方法是使用图形处理器(GPU)。该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有对多层人工神经网络运算的专门支持,仍然需要大量的前端译码工作才能执行多层人工神经网络运算,带来了大量的额外开销。另外GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈。另外,GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈,同时带来了巨大的功耗开销。
发明内容
本公开所要解决的是现有技术中通用处理器(GPU、CPU)进行多层神经网络预训练需要一系列的简单运算以及访存运算,前端译码功耗开销较大以及现有的通用处理器数据访存开销大、单个通用处理器运算性能低等问题。
本公开提出一种用于执行人工神经网络自学习运算的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块,其中:所述指令存储单元用于通过数据访问单元读入指令并缓存读入的指令;所述控制器单元用于从指令存储单元读取指令,并将该指令译码成控制互连模块、主运算模块、以及从运算模块行为的控制信号,然后将各自的控制信号分发至各个模块;所述数据访问单元用于访问外部地址空间,完成数据的加载和存储;所述互连模块具有不同拓扑实现,用于将所述主运算模块的输入向量分发给所述多个从运算模块,以及将各从运算模块的计算结果合并后返回给主运算模块;所述主运算模块用于对所述互连模块返回的中间值进行激活函数、吉布斯采样,以及对激活函数的偏置的更新;所述从运算模块用于输入向量和相应权重矩阵的点积运算,输入向量中的相应分量标量和对应权重矩阵的乘积运算,以及权重矩阵的更新。
根据本公开的具体实施方式,所述主运算模块包括运算单元、数据依赖关系判断单元和存储单元,其中,所述存储单元用于缓存主运算模块在计算过程中用到的输入数据和输出数据,所述运算单元用于完成主运算模块的运算;所述数据依赖关系判断单元是所述运算单元和读写存储单元的端口,用于保证存储单元中数据的读写一致性。
根据本公开的具体实施方式,所述数据依赖关系判断单元用于判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许该组控制信号立即发射,否则需要等到该组控制信号所依赖的所有控制信号全部执行完成后该条控制信号才允许被发射。
根据本公开的具体实施方式,所述数据依赖关系判断单元还用于将读取数据通过互连模块发送给从计算模块。
根据本公开的具体实施方式,每个所述从运算模块包括运算单元、数据依赖关系判断单元、第一存储单元、第二存储单元和第三存储单元,其中,所述运算单元用于接收控制器单元发出的控制信号并进行算数逻辑运算;所述数据依赖关系判断单元用于对缓存单元的读写操作进行监控,以保证对缓存单元的读写不存在一致性冲突;所述第一存储单元用于缓存神经元的输入向量和计算结果;所述第二存储单元用于缓存所述从运算模块在计算过程中需要的权值数据;所述第三存储单元用于缓存相应从运算模块在更新权值过程中需要的权值梯度数据。
本公开还提出一种执行人工神经网络逐层自学习运算的方法,所述人工神经网络包括两层或者两层以上的多个神经元,人工神经网络的自学习预训练采用逐层训练。假定输入神经元向量
Figure GDA0002259786630000031
和一阶可见层中间值
Figure GDA0002259786630000032
均包括m维向量,一阶隐层中间值
Figure GDA0002259786630000033
和第二隐层中间值
Figure GDA0002259786630000034
均为n维向量,权值向量矩阵为
Figure GDA0002259786630000035
包括m*n个元素,可以为m行n列,也可以是n行m列,二者可通过转置进行变换。这里我们以m行n列的形式进行举例说明。对于每一层来说,所述预训练分为四个阶段:
第一阶段,输入神经元向量
Figure GDA0002259786630000036
和权值向量矩阵
Figure GDA0002259786630000037
的列向量进行点积运算得到局部诱导域,局部诱导域经过激活函数非线性变换后再采用吉布斯(Gibbs)采样计算得到一阶隐层中间值
Figure GDA0002259786630000038
第二阶段,先将一阶隐层中间值
Figure GDA0002259786630000039
和权值向量矩阵的转置
Figure GDA00022597866300000310
的列向量进行点积运算,其局部诱导域经过激活函数非线性变换后再采用Gibbs采样得到一阶可见层中间值
Figure GDA00022597866300000311
第三阶段,输入一阶可见层中间值
Figure GDA00022597866300000312
和权值向量矩阵
Figure GDA00022597866300000313
的列向量进行点积运算得到局部诱导域,局部诱导域经过激活函数非线性变换后得到第二隐层中间值
Figure GDA00022597866300000314
第四阶段,根据如下公式更新权重:
Figure GDA0002259786630000041
Figure GDA0002259786630000042
Figure GDA0002259786630000043
其中,向量
Figure GDA0002259786630000044
为上述第一、三阶段进行激活函数之前向量和权重矩阵点积部分和加的偏置,向量
Figure GDA0002259786630000045
则为第二阶段时的偏置;公式中“×”表示将向量看作矩阵进行的乘法运算,∈则是学习率。
相比于现有技术,本公开对多层神经网络预训练指令进行优化,处理器可仅用一条指令完成神经网络一层的预训练学习,精简了通用处理器指令的前端译码开销;同时,本公开包含一个主运算模块、多个从运算模块以及大量分布式片上存储缓解访存开销,可并行执行神经网络预训练运算而不需进行频繁的片外数据访存。总而言之,本公开的性能功耗比远高于通用处理器。
本公开可以应用于以下(包括但不限于)场景中:数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示出了根据本公开实施例的用于执行人工神经网络自学习预训练的装置的整体结构的示例框图。
图2示意性示出了根据本公开实施例的用于执行人工神经网络自学习预训练的装置中互连模块的H树型结构实现。
图3示出了根据本公开实施例的用于执行人工神经网络自学习预训练的装置中主运算模块结构的示例框图。
图4示出了根据本公开实施例的用于执行人工神经网络自学习预训练的装置中从运算模块结构的示例框图。
图5示出了根据本公开实施例的神经网络自学习预训练过程第一、三阶段的示例框图。
图6示出了根据本公开实施例的神经网络自学习预训练过程第二阶段的示例框图。
图7示出了根据本公开实施例的神经网络自学习预训练过程第四阶段的实例流程图。
图8示出了根据本公开实施例的单层神经网络自学习预训练一次迭代的实例流程图。
在所有附图中,相同的装置、部件、单元等使用相同的附图标记来表示。
具体实施方式
根据结合附图对本公开示例性实施例的以下详细描述,本公开的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。
在本公开中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。
在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相似功能和操作。
根据本公开实施例的多层人工神经网络的自学习预训练,人工神经网络包括两层或者两层以上的多个神经元。人工神经网络的自学习预训练采用逐层训练。假定输入神经元向量
Figure GDA0002259786630000051
和一阶可见层中间值
Figure GDA0002259786630000052
均包括m维向量,一阶隐层中间值
Figure GDA0002259786630000053
和第二隐层中间值
Figure GDA0002259786630000054
均为n维向量,权值向量矩阵为
Figure GDA0002259786630000061
包括m*n个元素,可以为m行n列,也可以是n行m列,二者可通过转置进行变换。这里我们以m行n列的形式进行举例说明。对于每一层来说,预训练分为四个阶段:
第一阶段,输入神经元向量
Figure GDA0002259786630000062
首先和权值向量矩阵
Figure GDA0002259786630000063
的列向量进行点积运算得到局部诱导域,局部诱导域经过激活函数非线性变换后再采用吉布斯(Gibbs)采样计算得到一阶隐层中间值
Figure GDA0002259786630000064
第二阶段,先将一阶隐层中间值
Figure GDA0002259786630000065
和权值向量矩阵的转置
Figure GDA0002259786630000066
的列向量进行点积运算,其局部诱导域经过激活函数非线性变换后再采用Gibbs采样得到一阶可见层中间值
Figure GDA0002259786630000067
第三阶段和第一阶段类似,区别在于第三阶段输入为一阶可见层中间值
Figure GDA0002259786630000068
计算第二隐层中间值
Figure GDA0002259786630000069
之前不需经过Gibbs采样;
第四阶段,根据如下公式更新权重:
Figure GDA00022597866300000610
Figure GDA00022597866300000611
Figure GDA00022597866300000612
其中,向量
Figure GDA00022597866300000613
为上述第一、三阶段进行激活函数之前向量和权重矩阵点积部分和加的偏置,向量
Figure GDA00022597866300000614
则为第二阶段时的偏置;公式中“×”表示将向量看作矩阵进行的乘法运算,∈则是学习率。
图1示出了根据本公开的用于执行人工神经网络自学习预训练的装置的整体结构的示例框图。如图1所示,该装置包括指令存储单元1、控制器单元2、数据访问单元3、互连模块4、主运算模块5和多个从运算模块6。指令存储单元1、控制器单元2、数据访问单元3、互连模块4、主运算模块5和从运算模块6均可以通过硬件电路(例如专用集成电路ASIC)实现。
指令存储单元1通过数据访问单元3读入指令并缓存读入的指令。
控制器单元2从指令存储单元1中读取指令,将指令译成控制其他模块行为的控制信号并发送给其他模块如数据访问单元3、主运算模块5和从运算模块6等。
数据访问单元3能够访存外部地址空间,直接向装置内部的各个缓存单元读写数据,完成数据的加载和存储。
图2示意性示出了互连模块4的结构。互连模块4构成主运算模块5和多个从运算模块6之间的数据通路,并具有不同的结构。互连是由多个节点构成的二叉树通路,每个节点将上游的数据同样地发给下游的两个节点,将下游的两个节点返回的数据进行合并,并返回给上游的节点。例如,在神经网络自学习运算第一、三阶段过程中,主运算模块5内的输入向量通过互连模块4发送给各个从运算模块6;运算模块6的计算过程完成后,当从运算模块的计算过程完成后,每个从运算模块输出的神经元的值会在互连模块中逐级拼成一个完整的由局部诱导域组成的向量,作为中间结果向量返回主运算模块5进行激活函数并根据需求进行Gibbs采样。而在第二阶段过程中,主运算模块5内的一阶隐层中间值向量
Figure GDA0002259786630000071
通过互连模块4发送给各个从运算模块6;当从运算模块6的计算过程完成后,下游两个节点返回的向量会在当前节点相加成一个向量并返回给上游节点,作为中间结果向量返回主运算模块5进行激活函数以及Gibbs采样。
图3示出了根据本公开的用于执行人工神经网络预训练运算的装置中主运算模块5的结构的示例框图。如图3所示,主运算模块5包括运算单元51、数据依赖关系判断单元52和存储单元53。
存储单元53用于缓存主运算模块5在计算过程中用到的输入数据和输出数据,运算单元51完成主运算模块5的各种运算功能,数据依赖关系判断单元52是运算单元51读写存储单元53的端口,同时能够保证存储单元中数据的读写一致性。具体地,数据依赖关系判断单元52判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许该组控制信号立即发射,否则需要等到该组控制信号所依赖的所有控制信号全部执行完成后该条控制信号才允许被发射。例如,所有发往数据依赖关系单元52的控制信号都会被存入数据依赖关系单元52内部的指令队列里,在该队列中,读指令的读取数据的范围如果与队列位置靠前的写指令写数据的范围发生冲突,则该指令必须等到所依赖的写指令被执行后才能够执行。同时,数据依赖关系判断单元52也负责将读取数据通过互连模块4发送给从计算模块,而从计算模块6的输出数据通过互连模块4直接发送给运算单元51。控制器单元2输出的指令发送给计算单元51和数据依赖关系判断单元52,来控制其行为。
图4示出了根据本公开的用于执行人工神经网络预训练的装置中从运算模块6的结构的示例框图。如图4所示,每个从运算模块6包括运算单元61、数据依赖关系判断单元62、第一存储单元63、第二存储单元64和第三存储单元65。
运算单元61接收控制器单元2发出的控制信号并进行算数逻辑运算。
数据依赖关系判断单元62负责计算过程中对缓存单元的读写操作。数据依赖关系判断单元62保证对缓存单元的读写不存在一致性冲突。例如,所有发往数据依赖关系单元62的控制信号都会被存入数据依赖关系单元62内部的指令队列里,在该队列中,读指令的读取数据的范围如果与队列位置靠前的写指令写数据的范围发生冲突,则该指令必须等到所依赖的写指令被执行后才能够执行。
第一存储单元63缓存各阶段过程中的输入神经元向量
Figure GDA0002259786630000081
一阶隐层中间值
Figure GDA0002259786630000082
一阶可见层中间值
Figure GDA0002259786630000083
第二隐层中间值
Figure GDA0002259786630000084
以及各个阶段计算的输入向量和权重矩阵点积结果。
第二存储单元64缓存该从运算模块6在计算过程中需要的权值数据。对于每一个从运算模块,都只会存储权值矩阵中与该从运算模块6所存储的标量数据相对应的列。
第三存储单元65缓存相应从运算模块在更新权值过程中需要的权值梯度数据。每一个从运算模块6存储的权值梯度数据与其存储的权值数据相对应。
从运算模块6实现人工神经网络自学习预训练过程中前三阶段并行的前半部分以及最后一个阶段公式(1)权值的更新。
以人工神经网络深度信念网络(DBN)的预训练为例,将前三阶段的权值矩阵
Figure GDA0002259786630000085
(或
Figure GDA0002259786630000086
)和输入神经元向量
Figure GDA0002259786630000087
的乘法可以划分为不相关的并行计算子任务。第一、三阶段中,每个从运算模块6利用相同的输入向量值,和输出向量不同分量相对应的权值进行点积乘法运算,分别得到输出向量中不同分量相应的部分和,多次累加后得到其各自对应输出分量的这些部分和在互连模块4中逐级拼成一个完整局部诱导域向量。每个从运算模块6只需要计算出本模块对应输出神经元值相应的局部诱导域即可。不同的局部诱导域分量在互连模块4中逐级拼成一个完整局部诱导域向量传输给主运算模块进行激活函数以及随后的采样。第二阶段中,每个从运算模块6只计算输入的一阶隐层中间值向量
Figure GDA0002259786630000091
中相应的部分标量和权值矩阵
Figure GDA0002259786630000092
对应的列的乘积,得到的每个输出向量都是最终结果的一个待累加的部分和,这些部分和在互连模块中逐级两两相加得到最后的结果。每个从运算模块6计算出输出一阶可见层向量局部诱导域的部分和,所有的部分和在互连模块4中完成求和运算得到最后局部诱导域。前三个阶段计算得到中间值用于更新权重,主运算模块5基于前三个阶段运算的输出进行后续运算得出权重更新值。在最后一阶段,从运算模块6按照公式(1)更新权重也可分为三个小步骤:
1.每个从运算模块6计算输入的一阶隐层中间值向量
Figure GDA0002259786630000093
和输入神经元
Figure GDA0002259786630000094
中相应的部分标量的乘积中间值;
2.每个从运算模块6计算输入的一阶隐层中间值向量
Figure GDA0002259786630000095
和一阶可见层向量
Figure GDA0002259786630000096
中相应的部分标量的乘积,并计算和第一小阶段中间值的向量差值;
3.每个从运算模块6计算第二小阶段的差值和学习率的乘积,得到权重更新值,之后和权重
Figure GDA0002259786630000097
中对应的元素进行减法,得到更新后的权重。
值得注意的是,上述三个小阶段仅仅是对从计算模块6更新权重一个实例描述,应用者可以进行细节的微调,例如,可以将第一小阶段的乘积的计算和第二小阶段中乘积的计算互换;或者可以将第三小阶段乘以学习率提前到第二小阶段甚至是拆分至前两个小阶段。
根据本公开实施例,还提供了在前述装置上执行人工神经网络正向运算的指令集。指令集中包括CONFIG指令、COMPUTE指令、IO指令、NOP指令、JUMP指令和MOVE指令,其中:
CONFIG指令在每层人工神经网络计算开始前配置当前层计算需要的各种常数;
COMPUTE指令完成每层人工神经网络的算术逻辑计算;
IO指令实现从外部地址空间读入计算需要的输入数据以及在计算完成后将数据存回至外部空间;
NOP指令负责清空当前装至内部所有控制信号缓存队列中的控制信号,保证NOP指令之前的所有指令全部指令完毕。NOP指令本身不包含任何操作;
JUMP指令负责控制器将要从指令存储单元读取的下一条指令地址的跳转,用来实现控制流的跳转;
MOVE指令负责将装置内部地址空间某一地址的数据搬运至装置内部地址空间的另一地址,该过程独立于运算单元,在执行过程中不占用运算单元的资源。
图5示出了根据本公开实施例的神经网络自学习预训练过程第一、三阶段的示例框图。在不同从运算模块6中,互连模块4广播的输入向量分别与该从运算模块6的权值向量进行点积运算,得到对应的输出神经元值的局部诱导域部分和,所有这些输出局部诱导域值组成中间结果向量,该中间结果向量经过加偏置向量以及激活运算得到该层神经网络的最终输出神经元向量,公式描述为out=f(w*in+b),其中out输出向量、in是输入向量、b是偏置向量,w是权值矩阵,f是激活函数。每个从运算模块6的权值向量是权值矩阵中与该从运算模块6相对应的列向量。互连模块4将输入向量[I0,…,Im-1]发送给所有的从运算单元,暂存在第一存储单元中。对于第i个从运算单元,计算其相应的权值向量[W0i,…,W(m-1)i]与输入向量的点积。从运算单元输出的结果经过互连模块4拼成完整的局部诱导域向量并返回给主运算模块5,在主运算模块5中进行激活函数运算以及其可能的Gibbs采样,得到最后的输出向量[O0,O1,…,On-1]。
图6示出了根据本公开实施例的神经网络自学习预训练过程第二阶段的示例框图。计算输出一阶可见层向量
Figure GDA0002259786630000101
的过程为互连模块4广播一阶隐层向量值,每个从运算模块6取
Figure GDA0002259786630000102
中相应的部分标量
Figure GDA0002259786630000103
与权值矩阵
Figure GDA0002259786630000104
对应的列[W0i,…,W(m-1)i]的乘积,得到的每个输出向量都是一阶可见层向量的局部诱导域的一个待累加的部分和,这些部分和在互连模块4中逐级两两相加得到最后的局部诱导域。计算得的局部诱导域返回给主运算模块5,在主运算模块5中进行激活函数运算以及其可能的Gibbs采样,得到最后的输出一阶可见层向量
Figure GDA0002259786630000105
图7示出了根据本公开实施例的神经网络自学习预训练过程第四阶段的流程图。最后一阶段,从运算模块6按照公式(1)更新权重也可分为三个小步骤:
1.每个从运算模块6计算输入的一阶隐层中间值向量
Figure GDA0002259786630000111
和输入神经元
Figure GDA0002259786630000112
中相应的部分标量的乘积中间值缓存至图4所示的第三存储单元;此小阶段类似于图6所示的第二阶段的框图,不过其输入分别为一阶隐层中间值向量
Figure GDA0002259786630000113
和输入神经元
Figure GDA0002259786630000114
2.每个从运算模块6计算输入的一阶隐层中间值向量
Figure GDA0002259786630000115
和一阶可见层向量
Figure GDA0002259786630000116
中相应的部分标量的乘积,并计算和第一小阶段中间值的向量差值并缓存至图4所示的第三存储单元;
3.每个从运算模块6计算第二小阶段的差值和学习率的乘积,得到权重更新值,之后和权重
Figure GDA0002259786630000117
进行向量减法,得到更新后的权重。
值得注意的是,上述三个小阶段仅仅是对从计算模块6更新权重一个实例描述,应用者可以进行细节的微调,例如,可以将第一小阶段的乘积的计算和第二小阶段中乘积的计算互换;或者可以将第三小阶段乘以学习率提前到第二小阶段甚至是拆分至前两个小阶段。
图8示出根据一个实施例的一层人工神经网络自学习预训练运算流程图,由于多层人工神经网络自学习预训练可以采用逐层训练的方式,多层人工神经网络的预训练可以调用多次该流程实现。该流程图描述利用本公开的装置和指令集实现图4所示的一种单层神经网络自学习预训练运算的过程。
在步骤S1,在指令缓存单元1的首地址处预先存入一条IO指令。
在步骤S2,运算开始,控制器单元2从指令缓存单元1的首地址读取该条IO指令,根据译出的控制信号,数据访问单元3从外部地址空间读取相应的所有人工神经网络运算指令,并将其缓存在指令存储单元1中。
在步骤S3,控制器单元2接着从指令存储单元读入下一条IO指令,根据译出的控制信号,数据访问单元3从外部地址空间读取主运算模块5需要的所有数据(例如,包括输入神经元向量
Figure GDA0002259786630000118
激活函数插值表、学习率和偏置等)至主运算模块5的存储单元53。
在步骤S4,控制器单元2接着从指令存储单元读入下一条IO指令,根据译出的控制信号,数据访问单元3从外部地址空间读取从运算模块6需要的权值矩阵数据。
在步骤S5,控制器单元2接着从指令存储单元读入下一条CONFIG指令,根据译出的控制信号,装置配置该层神经网络第一阶段计算需要的各种常数。例如,运算单元51、61根据控制信号里的参数配置单元内部寄存器的值,所述参数例如包括本层计算的精度设置、激活函数的数据。
在步骤S6,控制器单元2接着从指令存储单元读入下一条COMPUTE指令,根据译出的控制信号,开始第一阶段的计算。主运算模块5首先通过互连模块4将输入神经元向量
Figure GDA0002259786630000121
发给各从运算模块6,保存至从运算模块6的第一存储单元63。从运算模块6的运算单元61从第二存储单元64读取权值向量(权值矩阵中对应于该从运算模块6的列向量),从第一存储单元读取输入神经元向量
Figure GDA0002259786630000122
完成权值向量和输入神经元向量
Figure GDA0002259786630000123
的点积运算,将中间结果通过互连模块返回。在互连模块4中,各从运算模块6返回的中间结果被逐级拼成完整的局部诱导域向量。主运算模块5得到互连模块4的返回值,根据COMPUTE指令译出的控制信号,从存储单元53读取偏置向量,与互连模块4返回的向量相加,然后再对相加结果做激活,并进行Gibbs采样,并将最后的一阶隐层向量
Figure GDA0002259786630000124
写回至存储单元53。
在步骤S7控制器单元2接着从指令存储单元读入下一条CONFIG指令,根据译出的控制信号,装置配置该层神经网络第二阶段计算需要的各种常数。
在步骤S8,控制器单元2接着从指令存储单元读入下一条COMPUTE指令,根据译出的控制信号,开始第二阶段的计算。主运算模块5首先通过互连模块4将一阶隐层向量
Figure GDA0002259786630000125
发给各从运算模块6,保存至从运算模块6的第一存储单元63。从运算模块6的运算单元61从第二存储单元64读取权值向量(权值矩阵中对应于该从运算模块6的列向量),从第一存储单元选取一阶隐层向量
Figure GDA0002259786630000126
的标量,完成权值向量和一阶隐层向量
Figure GDA0002259786630000127
对应的标量的乘积运算,将中间结果通过互连模块返回。在互连模块4中,各从运算模块6返回的中间结果被逐级相加成完整的局部诱导域向量。主运算模块5得到互连模块4的返回值,根据COMPUTE指令译出的控制信号,从存储单元53读取偏置向量,与互连模块4返回的向量相加,然后再对相加结果做激活,并进行Gibbs采样,并将最后的一阶可见层向量
Figure GDA0002259786630000131
写回至存储单元53。
在步骤S9,控制器单元2接着从指令存储单元读入下一条CONFIG指令,根据译出的控制信号,装置配置该层神经网络第三阶段计算需要的各种常数。本层的配置基本和第一阶段相同,不过还需多配置一个学习率参数。
在步骤S10,控制器单元2接着从指令存储单元读入下一条COMPUTE指令,根据译出的控制信号,开始第三阶段的计算。主运算模块5首先通过互连模块4将一阶隐层向量
Figure GDA0002259786630000132
发给各从运算模块6,保存至从运算模块6的第一存储单元63。从第一存储单元读取一阶可见层向量
Figure GDA0002259786630000133
完成权值向量和一阶可见层向量
Figure GDA0002259786630000134
的点积运算,将中间结果通过互连模块返回。在互连模块4中,各从运算模块6返回的中间结果被逐级拼成完整的局部诱导域向量。主运算模块5得到互连模块4的返回值,根据COMPUTE指令译出的控制信号,从存储单元53读取偏置向量,与互连模块4返回的向量相加,然后再对相加结果做激活,并将最后的一阶隐层向量
Figure GDA0002259786630000135
写回至存储单元53。
在步骤S11,控制器单元2接着从指令存储单元读入下一条COMPUTE指令,根据译出的控制信号,开始第四阶段的计算。第一小阶段主运算模块5首先通过互连模块4将输入神经元向量
Figure GDA0002259786630000136
和一阶隐层向量
Figure GDA0002259786630000137
发给各从运算模块6,保存至从运算模块6的权重梯度缓存单元65。第二小阶段从运算模块6的运算单元61从第一存储单元读取一阶隐层向量
Figure GDA0002259786630000138
和选取输入神经元向量
Figure GDA0002259786630000139
对应的分量,完成一阶隐层向量
Figure GDA00022597866300001310
和相应输入神经元向量
Figure GDA00022597866300001311
的分量的乘积运算,将中间结果和从权重梯度缓存单元65读取的前一小阶段缓存的中间值进行向量减法运算,并将运算得的中间结果缓存至权重梯度缓存单元65。最后一小阶段从运算模块6的运算单元61从权重梯度缓存单元65读取上一小阶段的中间值和学习率相乘得到权重更新值,并从权重缓存单元64读取相应的权重和权重更新值进行向量减法得到更新后的权重,并将其缓存回权重缓存单元64。如此,单层神经网络的一次自学习预训练迭代完成,经过多次迭代学习,权重达到某种收敛评判标准则(权重更新值小于某个阈值)单层神经网络预训练结束,可以开始下一层神经网络的预训练。
通过采用用于执行人工神经网络自学习预训练运算的装置和指令集,解决了CPU和GPU运算性能不足,前端译码开销大的问题。有效提高了对多层人工神经网络正向运算的支持。
通过采用针对多层人工神经网络正向运算的专用片上缓存,充分挖掘了输入神经元和权值数据的重用性,避免了反复向内存读取这些数据,降低了内存访问带宽,避免了内存带宽成为多层人工神经网络正向运算性能瓶颈的问题。
本公开中各功能/单元/模块/子模块都可以是硬件,比如该硬件可以是电路,包括数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。所述计算装置中的计算模块可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如RRAM,DRAM,SRAM,EDRAM,HBM,HMC等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
前面的附图中所描绘的进程或方法可通过包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,被具体化在非瞬态计算机可读介质上的软件),或两者的组合的处理逻辑来执行。虽然上文按照某些顺序操作描述了进程或方法,但是,应该理解,所描述的某些操作能以不同顺序来执行。此外,可并行地而非顺序地执行一些操作。
在前述的说明书中,参考其特定示例性实施例描述了本公开的各实施例。显然,可对各实施例做出各种修改,而不背离所附权利要求所述的本公开的更广泛的精神和范围。相应地,说明书和附图应当被认为是说明性的,而不是限制性的。

Claims (11)

1.一种人工神经网络自学习运算装置,其特征在于,所述装置包括控制器单元、互连模块、主运算模块、以及多个从运算模块,其中,
所述控制器单元用于读取人工神经网络自学习运算指令,将所述人工神经网络自学习运算指令译码为控制信号,并将所述控制信号发送至所述互连模块、所述主运算模块、以及所述从运算模块;
所述主运算模块、所述从运算模块和所述互连模块用于在所述控制信号的控制下,执行人工神经网络自学习运算方法,所述方法包括:
根据神经元向量
Figure DEST_PATH_IMAGE001
和权值向量矩阵
Figure 417248DEST_PATH_IMAGE002
的列向量计算得到一阶隐层中间值
Figure DEST_PATH_IMAGE003
根据所述一阶隐层中间值
Figure 68809DEST_PATH_IMAGE003
和所述权值向量矩阵的转置
Figure 442022DEST_PATH_IMAGE004
计算得到一阶可见层中间值
Figure DEST_PATH_IMAGE005
根据所述一阶可见层中间值
Figure 135433DEST_PATH_IMAGE006
和所述权值向量矩阵
Figure DEST_PATH_IMAGE007
计算得到第二隐层中间值
Figure 684226DEST_PATH_IMAGE008
根据预设的学习率、所述一阶隐层中间值
Figure 100164DEST_PATH_IMAGE003
、所述神经元向量的转置
Figure DEST_PATH_IMAGE009
、所述第二隐层中间值
Figure 163935DEST_PATH_IMAGE010
和所述一阶可见层中间值的转置
Figure 628415DEST_PATH_IMAGE011
更新所述权值向量矩阵
Figure 500556DEST_PATH_IMAGE012
所述互连模块,用于根据所述控制信号,将所述主运算模块的输入向量分发给所述多个从运算模块,根据所述控制信号,将所述从运算模块的计算结果合并得到合并结果,并将所述合并结果返回给所述主运算模块,其中,
所述输入向量包括:所述神经元向量
Figure DEST_PATH_IMAGE013
或其转置、所述一阶隐层中间值
Figure 352974DEST_PATH_IMAGE014
或其转置、所述一阶可见层中间值
Figure DEST_PATH_IMAGE015
或其转置、所述第二隐层中间值
Figure 417225DEST_PATH_IMAGE016
或其转置;
所述合并包括:将多个所述计算结果进行拼接或将多个所述计算结果的相应分量进行加和。
2.如权利要求1所述的装置,其特征在于,
所述主运算模块包括:激活函数运算器和采样运算器,
所述激活函数运算器,用于对所述互连模块返回的所述中间值进行激活函数运算;
所述采样运算器,用于对激活函数运算结果进行吉布斯采样;
所述从运算模块,用于根据所述输入向量和所述权值向量矩阵中相应的权重进行点积运算,用于将所述输入向量中的分量标量和另一所述输入向量中的相应分量标量进行乘法运算,用于根据预设的学习率和所述一个或多个输入向量对所述权值向量矩阵进行更新。
3.如权利要求2所述的装置,其特征在于,所述主运算模块、所述从运算模块和所述互连模块用于在所述控制信号的控制下,根据神经元向量
Figure 419816DEST_PATH_IMAGE017
和权值向量矩阵
Figure DEST_PATH_IMAGE018
的列向量计算得到一阶隐层中间值
Figure 739939DEST_PATH_IMAGE003
,包括,
所述从运算模块,用于根据所述控制信号,接收所述主运算模块通过所述互连模块传送的所述神经元向量,用于根据所述控制信号,将所述神经元向量与所述权值向量矩阵中相应的权值进行点积运算得到点积运算结果,用于根据所述控制信号,将所述点积运算结果相应的分量进行累加得到累加结果,用于根据所述控制信号,将所述点积运算结果或所述累加结果通过所述互连模块传送给所述主运算模块;
所述互连模块,用于根据所述控制信号,将所述主运算模块发送的所述神经元向量发送给所述多个从运算模块,用于根据所述控制信号,将所述各从运算模块的所述点积运算结果或所述累加结果拼接成第一局部诱导域,并将所述第一局部诱导域返回给所述主运算模块;
所述主运算模块,用于根据所述控制信号,将所述神经元向量通过所述互连模块发送给所述从运算模块,用于根据所述控制信号,接收所述互连模块传递来的所述第一局部诱导域;其中,
所述激活函数运算器,用于根据所述控制信号,将所述第一局部诱导域经过第一激活函数非线性变换得到第一结果;
所述采样运算器,用于根据所述控制信号,用于将所述第一结果利用吉布斯采样得到所述一阶隐层中间值。
4.如权利要求3所述的装置,其特征在于,所述主运算模块、所述从运算模块和所述互连模块用于在所述控制信号的控制下,根据所述一阶隐层中间值
Figure 435362DEST_PATH_IMAGE019
和所述权值向量矩阵的转置
Figure 145829DEST_PATH_IMAGE004
计算得到一阶可见层中间值
Figure 748849DEST_PATH_IMAGE020
,包括:
所述从运算模块,用于根据所述控制信号,接收所述主运算模块通过所述互连模块传送的所述一阶隐层中间值的转置,用于根据所述控制信号,将所述一阶隐层中间值与所述权值向量矩阵的转置中相应的权值进行点积运算得到点积运算结果,用于根据所述控制信号,将所述的点积运算结果相应的分量进行累加得到累加结果,用于根据所述控制信号,将所述的点积运算结果或所述的累加结果通过互连模块传送给所述主运算模块;
所述互连模块,用于根据所述控制信号,将所述主运算模块发送的所述一阶隐层中间值的转置发送给所述多个从运算模块,用于根据所述控制信号,将所述各从运算模块的所述点积运算结果或所述累加结果的相应分量进行加和得到第二局部诱导域,并将所述第二局部诱导域返回给所述主运算模块;
所述主运算模块,用于根据所述控制信号,将所述一阶隐层中间值的转置通过所述互连模块发送给各所述从运算模块,用于根据所述控制信号,接收所述互连模块传送的所述第二局部诱导域;其中,
所述激活函数运算器,用于根据所述控制信号,将所述第二局部诱导域经过第二激活函数非线性变换得到第二结果;
所述采样运算器,用于根据所述控制信号,将所述第二结果利用吉布斯采样得到所述一阶可见层中间值
Figure 861161DEST_PATH_IMAGE021
5.如权利要求4所述的装置,其特征在于,所述主运算模块、所述从运算模块和所述互连模块用于在所述控制信号的控制下,根据所述一阶可见层中间值
Figure 461907DEST_PATH_IMAGE022
和所述权值向量矩阵
Figure 784304DEST_PATH_IMAGE007
计算得到第二隐层中间值
Figure 66381DEST_PATH_IMAGE010
,包括:
所述从运算模块,用于根据所述控制信号,接收所述主运算模块通过所述互连模块传送的所述一阶可见层中间值
Figure 829937DEST_PATH_IMAGE022
,用于根据所述控制信号,将所述一阶可见层中间值
Figure 430945DEST_PATH_IMAGE015
与所述权值向量矩阵中相应的权值进行点积运算得到点积运算结果,用于根据所述控制信号,将所述点积运算结果相应的分量进行累加得到累加结果,用于根据所述控制信号,将所述点积运算结果或所述累加结果通过所述互连模块传送给所述主运算模块;
所述互连模块,用于根据所述控制信号,将所述主运算模块发送的所述一阶可见层中间值
Figure 850425DEST_PATH_IMAGE015
发送给所述多个从运算模块,用于根据所述控制信号,将所述从运算模块的所述点积运算结果或所述累加结果拼接成第三局部诱导域,并将所述第三局部诱导域返回给所述主运算模块;
所述主运算模块,用于根据所述控制信号,将所述一阶可见层中间值
Figure 998510DEST_PATH_IMAGE023
通过所述互连模块发送给各所述从运算模块,用于根据所述控制信号,接收所述互连模块传送的所述第三局部诱导域;
所述激活函数运算器,用于根据所述控制信号,将所述第三局部诱导域经过第一激活函数非线性变换得到所述第二隐层中间值
Figure 678890DEST_PATH_IMAGE024
6.如权利要求5所述的装置,其特征在于,所述主运算模块、所述从运算模块和所述互连模块用于在所述控制信号的控制下,根据预设的学习率、所述一阶隐层中间值
Figure 887017DEST_PATH_IMAGE025
、所述神经元向量的转置
Figure 528214DEST_PATH_IMAGE026
、所述第二隐层中间值
Figure 542307DEST_PATH_IMAGE027
和所述一阶可见层中间值的转置
Figure 483718DEST_PATH_IMAGE011
更新所述权值向量矩阵
Figure 862747DEST_PATH_IMAGE007
,包括:
所述从运算模块,用于根据所述控制信号,接收所述主运算模块通过互连模块传送的所述神经元向量
Figure 115873DEST_PATH_IMAGE028
,接收所述主运算模块通过所述互连模块传送的所述一阶隐层中间值
Figure 809023DEST_PATH_IMAGE003
,将所述一阶隐层中间值
Figure 136099DEST_PATH_IMAGE029
与所述神经元向量
Figure 515390DEST_PATH_IMAGE030
对应分量进行乘积运算得到第一权重中间值,
用于根据所述控制信号,接收所述主运算模块通过所述互连模块传送的所述一阶可见层中间值
Figure 131179DEST_PATH_IMAGE031
,接收所述主运算模块通过互连模块传送的所述第二隐层中间值
Figure 424757DEST_PATH_IMAGE010
,将所述第二隐层中间值
Figure 199815DEST_PATH_IMAGE024
与所述一阶可见层中间值
Figure 592750DEST_PATH_IMAGE021
对应分量进行乘积运算得到第二权重中间值,
用于根据所述控制信号,根据所述第一权重中间值和所述第二权重中间值计算得到权重中间值差值,将所述权重中间值差值根据学习率进行运算后得到权重更新值,所述权重更新值用于更新所述权重向量矩阵;
所述互连模块,用于根据所述控制信号,将所述主运算模块的所述神经元向量的转置或所述一阶可见层中间值的转置或所述一阶隐层中间值或所述第二隐层中间值发送给所述多个从运算模块;
所述主运算模块,用于根据所述控制信号,将所述神经元向量的转置通过互连模块发送给各所述从运算模块,将所述一阶隐层中间值通过所述互连模块发送给各所述从运算模块,将所述一阶可见层中间值的转置通过所述互连模块发送给各所述从运算模块,将所述第二隐层中间值通过所述互连模块发送给各所述从运算模块。
7.如权利要求6所述的装置,其特征在于,
所述主运算模块还包括加法器,所述加法器用于根据一种或多种输入向量更新偏置向量。
8.如权利要求7所述的装置,其特征在于,所述主运算模块、所述从运算模块和所述互连模块,用于将所述第一局部诱导域经过第一激活函数非线性变换得到所述一阶隐层中间值
Figure 758153DEST_PATH_IMAGE003
,包括:
所述主运算模块,用于根据所述控制信号,接收所述互连模块传送的所述第一局部诱导域,并将所述第一局部诱导域与第一偏置相加得到的第一加和结果;
所述激活函数运算器,用于根据所述控制信号,将所述第一加和结果经过第一激活函数非线性变换得到所述第一结果;
所述采样运算器,用于根据所述控制信号,将所述第一结果利用吉布斯采样计算得到所述一阶隐层中间值
Figure 652159DEST_PATH_IMAGE003
所述主运算模块、所述从运算模块和所述互连模块,用于将所述第三局部诱导域经过第一激活函数非线性变换后得到第二隐层中间值
Figure 422669DEST_PATH_IMAGE016
,包括:
所述主运算模块,用于根据所述控制信号,接收所述互连模块传送的所述第三局部诱导域,并将所述第三局部诱导域与第一偏置相加得到的第三加和结果;
所述激活函数运算器,用于根据所述控制信号,将所述第三加和结果经过所述第一激活函数非线性变换得到所述第二隐层中间值
Figure 376719DEST_PATH_IMAGE032
所述主运算模块、所述从运算模块和所述互连模块,用于根据所述一阶隐层中间值
Figure 29417DEST_PATH_IMAGE033
和所述第二隐层中间值
Figure 602481DEST_PATH_IMAGE024
更新所述第一偏置,包括:
所述加法器,用于根据所述控制信号,计算所述一阶隐层中间值
Figure 758655DEST_PATH_IMAGE025
和所述第二隐层中间值
Figure 650650DEST_PATH_IMAGE024
的差值得到第一偏置差值,将所述第一偏置差值根据学习率进行运算后得到第一偏置更新值,所述第一偏置更新值用于更新所述第一偏置。
9.如权利要求7所述的装置,其特征在于,所述主运算模块、所述从运算模块和所述互连模块,用于将所述第二局部诱导域经过第二激活函数非线性变换得到一阶可见层中间值
Figure 462749DEST_PATH_IMAGE020
,包括:
所述主运算模块,用于根据所述控制信号,接收所述互连模块传送的所述第二局部诱导域,并将所述第二局部诱导域与第二偏置相加得到的第二加和结果;
所述激活函数运算器,用于根据所述控制信号,将所述第二加和结果经过第二激活函数非线性变换得到所述第二结果;
所述采样运算器,用于根据所述控制信号,将所述第二结果利用吉布斯采样计算得到所述一阶可见层中间值
Figure 901820DEST_PATH_IMAGE034
所述主运算模块、所述从运算模块和所述互连模块,用于根据所述神经元向量
Figure 240398DEST_PATH_IMAGE035
和所述一阶可见层中间值
Figure 677195DEST_PATH_IMAGE021
更新所述第二偏置,包括:
所述加法器,用于根据所述控制信号,计算所述神经元向量
Figure 38906DEST_PATH_IMAGE013
和所述一阶可见层中间值
Figure 78407DEST_PATH_IMAGE020
的差值得到第二偏置差值,将所述第二偏置差值根据学习率进行运算后得到第二偏置更新值,所述第二偏置更新值用于更新所述第二偏置。
10.如权利要求1至9中任一项所述的装置,其特征在于,所述人工神经网络自学习运算指令,包括以下指令中其中一种或任意组合:CONFIG指令、COMPUTE指令、IO指令、NOP指令、JUMP指令、MOVE指令。
11.一种电子设备,包括权利要求1至9中任一所述的人工神经网络自学习运算装置。
CN201910402047.3A 2016-04-27 2016-04-27 用于执行人工神经网络自学习运算的装置和方法 Active CN110188870B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910402047.3A CN110188870B (zh) 2016-04-27 2016-04-27 用于执行人工神经网络自学习运算的装置和方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910402047.3A CN110188870B (zh) 2016-04-27 2016-04-27 用于执行人工神经网络自学习运算的装置和方法
CN201610267211.0A CN107316078B (zh) 2016-04-27 2016-04-27 用于执行人工神经网络自学习运算的装置和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201610267211.0A Division CN107316078B (zh) 2016-04-27 2016-04-27 用于执行人工神经网络自学习运算的装置和方法

Publications (2)

Publication Number Publication Date
CN110188870A CN110188870A (zh) 2019-08-30
CN110188870B true CN110188870B (zh) 2021-10-12

Family

ID=60185046

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610267211.0A Active CN107316078B (zh) 2016-04-27 2016-04-27 用于执行人工神经网络自学习运算的装置和方法
CN201910402047.3A Active CN110188870B (zh) 2016-04-27 2016-04-27 用于执行人工神经网络自学习运算的装置和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201610267211.0A Active CN107316078B (zh) 2016-04-27 2016-04-27 用于执行人工神经网络自学习运算的装置和方法

Country Status (1)

Country Link
CN (2) CN107316078B (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109754062A (zh) * 2017-11-07 2019-05-14 上海寒武纪信息科技有限公司 卷积扩展指令的执行方法以及相关产品
CN109784125A (zh) * 2017-11-10 2019-05-21 福州瑞芯微电子股份有限公司 深度学习网络处理装置、方法及图像处理单元
CN111738431B (zh) 2017-12-11 2024-03-05 中科寒武纪科技股份有限公司 神经网络运算设备和方法
CN109961136B (zh) * 2017-12-14 2020-05-19 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN108108189B (zh) * 2017-12-15 2020-10-30 安徽寒武纪信息科技有限公司 一种计算方法及相关产品
CN109993290B (zh) 2017-12-30 2021-08-06 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
WO2019129302A1 (zh) 2017-12-30 2019-07-04 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109993292B (zh) 2017-12-30 2020-08-04 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993289B (zh) 2017-12-30 2021-09-21 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN108364065B (zh) * 2018-01-19 2020-09-11 上海兆芯集成电路有限公司 采布斯乘法的微处理器
CN110147249B (zh) * 2018-02-12 2021-02-09 上海寒武纪信息科技有限公司 一种网络模型的计算方法及装置
CN110163349B (zh) * 2018-02-12 2021-03-23 上海寒武纪信息科技有限公司 一种网络模型的计算方法及装置
US11704125B2 (en) 2018-02-13 2023-07-18 Cambricon (Xi'an) Semiconductor Co., Ltd. Computing device and method
CN110163360B (zh) * 2018-02-13 2021-06-25 上海寒武纪信息科技有限公司 一种计算装置及方法
EP3651070B1 (en) * 2018-02-13 2021-07-28 Shanghai Cambricon Information Technology Co., Ltd Computation device and method
CN110163350B (zh) * 2018-02-13 2021-06-08 上海寒武纪信息科技有限公司 一种计算装置及方法
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN111767997B (zh) * 2018-02-27 2023-08-29 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN110197270B (zh) * 2018-02-27 2020-10-30 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN110197271B (zh) * 2018-02-27 2020-10-27 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN110197273B (zh) * 2018-02-27 2020-08-25 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN111767998A (zh) * 2018-02-27 2020-10-13 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN110196734A (zh) * 2018-02-27 2019-09-03 上海寒武纪信息科技有限公司 一种计算装置及相关产品
CN111767996B (zh) * 2018-02-27 2024-03-05 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN111626413A (zh) * 2018-03-14 2020-09-04 上海寒武纪信息科技有限公司 一种计算装置及方法
CN110472734B (zh) * 2018-05-11 2024-03-29 上海寒武纪信息科技有限公司 一种计算装置及相关产品
CN108710958B (zh) * 2018-05-16 2022-04-15 北京旋极信息技术股份有限公司 一种预测健康管理方法及装置、计算机可读存储介质
CN108763360A (zh) * 2018-05-16 2018-11-06 北京旋极信息技术股份有限公司 一种分类方法及装置、计算机可读存储介质
CN108859477A (zh) * 2018-07-05 2018-11-23 吉林工程技术师范学院 一种儿童文学书籍装订机及其控制方法
CN110806903A (zh) * 2018-08-01 2020-02-18 珠海格力电器股份有限公司 电饭煲的配置参数确定方法及装置
US20220004854A1 (en) * 2018-10-08 2022-01-06 Deeper-I Co., Inc. Artificial neural network computation acceleration apparatus for distributed processing, artificial neural network acceleration system using same, and artificial neural network acceleration method therefor
CN110059809B (zh) * 2018-10-10 2020-01-17 中科寒武纪科技股份有限公司 一种计算装置及相关产品
CN111047045B (zh) * 2018-10-12 2021-03-19 中科寒武纪科技股份有限公司 机器学习运算的分配系统及方法
CN111079908B (zh) * 2018-10-18 2024-02-13 上海寒武纪信息科技有限公司 片上网络数据处理方法、存储介质、计算机设备和装置
WO2020078470A1 (zh) 2018-10-18 2020-04-23 上海寒武纪信息科技有限公司 片上网络数据处理方法及装置
CN111178492B (zh) * 2018-11-09 2020-12-11 安徽寒武纪信息科技有限公司 计算装置及相关产品、执行人工神经网络模型的计算方法
CN111260046B (zh) * 2018-11-30 2022-12-02 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN109542837B (zh) * 2018-11-30 2023-03-24 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN111258641B (zh) * 2018-11-30 2022-12-09 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN109919313B (zh) * 2019-01-31 2021-06-08 华为技术有限公司 一种梯度传输的方法及分布式训练系统
CN109978160B (zh) * 2019-03-25 2021-03-02 中科寒武纪科技股份有限公司 人工智能处理器的配置装置、方法及相关产品
US11934940B2 (en) 2019-04-18 2024-03-19 Cambricon Technologies Corporation Limited AI processor simulation
CN111080400B (zh) * 2019-11-25 2023-04-18 中山大学 一种基于门控图卷积网络的商品推荐方法及系统、存储介质
CN111461340B (zh) * 2020-03-10 2023-03-31 北京百度网讯科技有限公司 权重矩阵的更新方法、装置及电子设备
CN112329619B (zh) * 2020-11-04 2022-06-14 济南博观智能科技有限公司 一种人脸识别方法、装置、电子设备及可读存储介质
CN114071781B (zh) * 2021-11-16 2024-04-12 杭州电子科技大学 一种无线局域网介质访问控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729678A (zh) * 2013-12-12 2014-04-16 中国科学院信息工程研究所 一种基于改进dbn模型的水军检测方法及系统
CN104157290A (zh) * 2014-08-19 2014-11-19 大连理工大学 一种基于深度学习的说话人识别方法
CN104182772A (zh) * 2014-08-19 2014-12-03 大连理工大学 一种基于深度学习的手势识别方法
CN104757992A (zh) * 2015-03-16 2015-07-08 广东工业大学 一种基于深度置信网络的心音诊断系统及其诊断方法
CN105184366A (zh) * 2015-09-15 2015-12-23 中国科学院计算技术研究所 一种时分复用的通用神经网络处理器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104732274A (zh) * 2015-03-10 2015-06-24 华南理工大学 一种智能计算机
CN105117706B (zh) * 2015-08-28 2019-01-18 小米科技有限责任公司 图像处理方法和装置、字符识别方法和装置
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN105447569B (zh) * 2015-12-18 2018-10-19 北京柏惠维康科技有限公司 一种基于深度学习的乳腺癌细胞特征分析系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729678A (zh) * 2013-12-12 2014-04-16 中国科学院信息工程研究所 一种基于改进dbn模型的水军检测方法及系统
CN104157290A (zh) * 2014-08-19 2014-11-19 大连理工大学 一种基于深度学习的说话人识别方法
CN104182772A (zh) * 2014-08-19 2014-12-03 大连理工大学 一种基于深度学习的手势识别方法
CN104757992A (zh) * 2015-03-16 2015-07-08 广东工业大学 一种基于深度置信网络的心音诊断系统及其诊断方法
CN105184366A (zh) * 2015-09-15 2015-12-23 中国科学院计算技术研究所 一种时分复用的通用神经网络处理器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DaDianNao:A Machine-Learning Supercomputer;Yunji Chen 等;《2014 47th Annual IEEE/ACM International Symposium on Microarchitecture》;20141231;全文 *
基于数据并行的BP神经网络训练算法;张弦;《中国优秀硕士学位论文全文数据库 信息科技辑(月刊)自动化技术》;20100515(第05期);第4.3.3节 *

Also Published As

Publication number Publication date
CN107316078B (zh) 2021-05-07
CN107316078A (zh) 2017-11-03
CN110188870A (zh) 2019-08-30

Similar Documents

Publication Publication Date Title
CN110188870B (zh) 用于执行人工神经网络自学习运算的装置和方法
CN107341547B (zh) 一种用于执行卷积神经网络训练的装置和方法
CN107341542B (zh) 用于执行循环神经网络和lstm运算的装置和方法
CN107832843B (zh) 一种信息处理方法及相关产品
CN107315571B (zh) 一种用于执行全连接层神经网络正向运算的装置和方法
CN107341541B (zh) 一种用于执行全连接层神经网络训练的装置和方法
EP3451157B1 (en) Device and method for performing forward operation of convolutional neural network
CN107301453B (zh) 支持离散数据表示的人工神经网络正向运算装置和方法
CN107301454B (zh) 支持离散数据表示的人工神经网络反向训练装置和方法
WO2017185347A1 (zh) 用于执行循环神经网络和lstm运算的装置和方法
CN107886166B (zh) 一种执行人工神经网络运算的装置和方法
EP3444757A1 (en) Discrete data representation supported device and method for forward operation of artificial neural network
WO2017185248A1 (zh) 用于执行人工神经网络自学习运算的装置和方法
EP3444758B1 (en) Discrete data representation-supporting apparatus and method for back-training of artificial neural network
WO2018058452A1 (zh) 一种执行人工神经网络运算的装置和方法
CN107341546B (zh) 一种用于执行batch normalization运算的装置和方法
CN111178492B (zh) 计算装置及相关产品、执行人工神经网络模型的计算方法
CN109993276B (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
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: Cambricon Technologies Corporation Ltd.

GR01 Patent grant
GR01 Patent grant