CN111198714B - 重训练方法及相关产品 - Google Patents

重训练方法及相关产品 Download PDF

Info

Publication number
CN111198714B
CN111198714B CN201811365184.6A CN201811365184A CN111198714B CN 111198714 B CN111198714 B CN 111198714B CN 201811365184 A CN201811365184 A CN 201811365184A CN 111198714 B CN111198714 B CN 111198714B
Authority
CN
China
Prior art keywords
target
neural network
training
layer
bit width
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
CN201811365184.6A
Other languages
English (en)
Other versions
CN111198714A (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.)
Cambrian Xi'an Integrated Circuit Co ltd
Original Assignee
Cambrian Xi'an Integrated Circuit Co 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 Cambrian Xi'an Integrated Circuit Co ltd filed Critical Cambrian Xi'an Integrated Circuit Co ltd
Priority to CN201811365184.6A priority Critical patent/CN111198714B/zh
Publication of CN111198714A publication Critical patent/CN111198714A/zh
Application granted granted Critical
Publication of CN111198714B publication Critical patent/CN111198714B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • 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

重训练方法及相关产品
技术领域
本申请涉及人工智能技术领域,具体涉及一种重训练方法及相关产品。
背景技术
随着人工智能技术的快速发展,神经网络在图像、语音以及文字等具有海量数据的领域已经有了广泛而成功的应用。对神经网络的训练/重训实际上是对某个损失函数进行优化的过程。其中,训练的本质是寻找最优解,重训则是指在已有的一个可能离最优解很近的次优解的情况下搜索最优解,即在一定的基础上继续训练。
在GPU/CPU上,一般用32bit的浮点数来表示数据以及执行计算,为了节省资源、提高速度,硬件平台希望采用较低比特、比如16bit定点数来表示数据并且执行计算。然而,由于使用近似值表示浮点数,定点计算往往会造成网络预测结果精确度的下降,从而影响网络的性能。如何对定点化的神经网络进行重训练是本领域技术人员待解决的技术问题。
发明内容
本申请实施例提出了一种重训练方法及相关产品,可在保证所需精度的情况下,提高运算效率。
第一方面,本申请实施例提供了一种计算装置,所述计算装置包括控制器单元、与所述控制器单元连接的存储单元,以及与所述控制器单元和所述存储单元连接的运算单元,其中:
所述存储单元,用于存储浮点神经网络的初始化参数和训练数据集;
所述运算单元,用于对所述初始化参数进行定点化,以得到待训练神经网络;
所述控制器单元,用于控制所述运算单元根据所述训练数据集对所述待训练神经网络进行重训练,以得到目标神经网络,所述目标神经网络的损失函数达到或超过预设精度。
第二方面,本申请实施例提供了一种重训练方法,应用于计算装置,所述计算装置包括控制器单元、存储单元和运算单元,所述方法包括:
通过所述存储单元存储浮点神经网络的初始化参数和训练数据集;
通过所述运算单元对所述初始化参数进行定点化,以得到待训练神经网络;
通过控制所述运算单元根据所述训练数据集对所述待训练神经网络进行重训练,以得到目标神经网络,所述目标神经网络的损失函数达到或超过预设精度。
第三方面,本申请实施例提供另一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,所述程序包括用于如第二方面中所描述的部分或全部步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第二方面的方法。
第五方面,本申请实施例提供了一种机器学习运算装置,该机器学习运算装置包括一个或者多个第一方面所述的计算装置。该机器学习运算装置用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述计算装置时,所述多个所述计算装置间可以通过特定的结构进行链接并传输数据;
其中,多个所述计算装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述计算装置共享同一控制系统或拥有各自的控制系统;多个所述计算装置共享内存或者拥有各自的内存;多个所述计算装置的互联方式是任意互联拓扑。
第六方面,本申请实施例提供了一种组合处理装置,该组合处理装置包括如第五方面所述的机器学习处理装置、通用互联接口,和其他处理装置。该机器学习运算装置与上述其他处理装置进行交互,共同完成用户指定的操作。该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其他处理装置连接,用于保存所述机器学习运算装置和所述其他处理装置的数据。
第七方面,本申请实施例提供了一种神经网络芯片,该神经网络芯片包括上述第一方面所述的计算装置、上述第五方面所述的机器学习运算装置或者上述第六方面所述的组合处理装置。
第八方面,本申请实施例提供了一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述第七方面所述的神经网络芯片;
第九方面,本申请实施例提供了一种板卡,该板卡包括上述第八方面所述的神经网络芯片封装结构。
第十方面,本申请实施例提供了一种电子装置,该电子装置包括上述第七方面所述的神经网络芯片或者上述第九方面所述的板卡。
第十一方面,本申请实施例还提供一种执行机器学习模型的计算方法,所述计算方法应用于计算装置,计算装置用于执行机器学习计算;所述计算装置包括:运算单元以及控制器单元;所述运算单元包括:一个主处理电路和多个从处理电路;所述方法包括:
所述控制器单元获取数据、机器学习模型以及计算指令;所述控制器单元解析该计算指令得到多个运算指令,将该多个运算指令以及所述数据发送给所述主处理电路;所述主处理电路对所述数据执行前序处理以及与所述多个从处理电路之间传输数据以及运算指令;所述多个从处理电路依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;所述主处理电路对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
在一些实施例中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
在一些实施例中,所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
采用了上述的重训练方法及相关产品之后,通过运算单元对浮点神经网络的初始化参数进行定点化以得到待训练神经网络,根据所述训练数据集对所述待训练神经网络进行重训练以得到目标神经网络,若所述目标神经网络的损失函数达到或超过预设精度,则结束重训练。如此,可在保证所需精度的情况下,提高运算效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1A是本申请实施例提供的一种计算装置的结构示意图;
图1B是本申请实施例提供的另一种计算装置的结构示意图;
图1C是本申请实施例提供的另一种计算装置的结构示意图;
图1D是本申请实施例提供的一种主处理电路的结构示意图;
图1E是本申请实施例提供的另一种计算装置的结构示意图;
图1F是本申请实施例提供一种的树型模块的结构示意图;
图1G是本申请实施例提供的另一种计算装置的结构示意图;
图1H是本申请实施例提供的另一种计算装置的结构示意图;
图1I是本申请实施例提供的另一种计算装置的结构示意图;
图1J是本申请实施例提供的一种浮点数据定点化的运算示意图;
图1K是本申请实施例提供的一种重训练方法的流程示意图;
图1L是本申请实施例提供的一种目标层与目标层的下一层之间的结构示意图;
图2是本申请实施例提供的另一种重训练方法的流程示意图;
图3是本申请实施例提供的一种组合处理装置的结构示意图;
图4是本申请实施例提供的一种板卡的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先介绍本申请使用的计算装置。请参见图1A,图1A是本申请实施例提供的一种计算装置的结构示意图。如图1A所示,计算装置用于执行机器学习计算,该计算装置包括:存储单元10、控制器单元11和运算单元12,其中,存储单元10、控制器单元11与运算单元12之间两两相连,该运算单元12包括一个主处理电路101和多个从处理电路102。
其中,控制器单元11,用于获取输入数据以及计算指令;在一种可选方案中,具体的,获取输入数据以及计算指令方式可以通过数据输入输出单元得到,该数据输入输出单元具体可以为一个或多个数据I/O接口或I/O引脚。
上述计算指令包括但不限于:正向运算指令或反向训练指令,或其他神经网络运算指令等等,例如卷积运算指令,本申请具体实施方式并不限制上述计算指令的具体表现形式。
控制器单元11,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
主处理电路101,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据以及运算指令;
多个从处理电路102,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
主处理电路101,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
本申请提供的技术方案将运算单元12设置成一主多从结构,对于正向运算的计算指令,其可以将依据正向运算的计算指令将数据进行拆分,这样通过多个从处理电路即能够对计算量较大的部分进行并行运算,从而提高运算速度,节省运算时间,进而降低功耗。
可选的,上述机器学习计算具体可以包括:人工神经网络运算,上述输入数据具体可以包括:输入神经元数据和权值数据。上述计算结果具体可以为:人工神经网络运算的结果即输出神经元数据。
对于神经网络中的运算可以为神经网络中的一层的运算,对于多层神经网络,其实现过程是,在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指令会将运算单元中计算出的输出神经元作为下一层的输入神经元进行运算(或者是对该输出神经元进行某些操作再作为下一层的输入神经元),同时,将权值也替换为下一层的权值;在反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算单元中计算出的输入神经元梯度作为下一层的输出神经元梯度进行运算(或者是对该输入神经元梯度进行某些操作再作为下一层的输出神经元梯度),同时将权值替换为下一层的权值。
上述机器学习计算还可以包括支持向量机运算,k-近邻(k-nn)运算,k-均值(k-means)运算,主成分分析运算等等。为了描述的方便,下面以人工神经网络运算为例来说明机器学习计算的具体方案。
对于人工神经网络运算,如果该人工神经网络运算具有多层运算,多层运算的输入神经元和输出神经元并非是指整个神经网络的输入层中神经元和输出层中神经元,而是对于网络中任意相邻的两层,处于网络正向运算下层中的神经元即为输入神经元,处于网络正向运算上层中的神经元即为输出神经元。以卷积神经网络为例,设一个卷积神经网络有L层,K=1,2,...,L-1,对于第K层和第K+1层来说,我们将第K层称为输入层,其中的神经元为所述输入神经元,第K+1层称为输出层,其中的神经元为所述输出神经元。即除最顶层外,每一层都可以作为输入层,其下一层为对应的输出层。
可选的,上述计算装置还可以包括:该存储单元10和直接内存访问单元50,存储单元10可以包括:寄存器、缓存中的一个或任意组合,具体的,所述缓存,用于存储所述计算指令;所述寄存器,用于存储所述输入数据和标量;所述缓存为高速暂存缓存。直接内存访问单元50用于从存储单元10读取或存储数据。
可选的,该控制器单元11包括:指令存储单元110、指令处理单元111和存储队列单元113。
其中,指令存储单元110,用于存储所述人工神经网络运算关联的计算指令;
所述指令处理单元111,用于对所述计算指令解析得到多个运算指令;
存储队列单元113,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。
举例说明,在一个可选的技术方案中,主运算处理电路也可以包括一个控制器单元,该控制器单元可以包括主指令处理单元,具体用于将指令译码成微指令。当然在另一种可选方案中,从运算处理电路也可以包括另一个控制器单元,该另一个控制器单元包括从指令处理单元,具体用于接收并处理微指令。上述微指令可以为指令的下一级指令,该微指令可以通过对指令的拆分或解码后获得,能被进一步解码为各部件、各单元或各处理电路的控制信号。
在一种可选方案中,该计算指令的结构可以如下表1所示。
表1
操作码 寄存器或立即数 寄存器/立即数 ...
上表1中的省略号表示可以包括多个寄存器或立即数。
在另一种可选方案中,该计算指令可以包括:一个或多个操作域以及一个操作码。该计算指令可以包括神经网络运算指令。以神经网络运算指令为例,如表2所示,其中,寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以为操作域。其中,每个寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以是一个或者多个寄存器的号码。
表2
Figure GDA0003784455910000061
上述寄存器201可以为片外存储器,当然在实际应用中,也可以为片内存储器,用于存储数据,该数据具体可以为n维数据,n为大于等于1的整数,例如,n=1时,为1维数据,即向量,如n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维张量。
可选的,该控制器单元11还可以包括:依赖关系处理单元112,用于在具有多个运算指令时,确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,则将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元;
所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需数据(例如矩阵)的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需矩阵的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第零运算指令不具有关联关系。
在另一种可选实施例中,运算单元12如图1C所示,可以包括一个主处理电路101和多个从处理电路102。在一个实施例里,如图1C所示,多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个从处理电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,需要说明的是,如图1C所示的k个从处理电路仅包括第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,即该k个从处理电路为多个从处理电路中直接与主处理电路连接的从处理电路。
k个从处理电路,用于在所述主处理电路101以及多个从处理电路102之间的数据以及指令的转发。
可选的,如图1D所示,该主处理电路101还可以包括:转换处理电路110、激活处理电路111、加法处理电路112中的一种或任意组合;
转换处理电路110,用于将主处理电路接收的数据块或中间结果执行第一数据结构与第二数据结构之间的互换(例如连续数据与离散数据的转换);或将主处理电路接收的数据块或中间结果执行第一数据类型与第二数据类型之间的互换(例如定点类型与浮点类型的转换);
激活处理电路111,用于执行主处理电路内数据的激活运算;
加法处理电路112,用于执行加法运算或累加运算。
所述主处理电路101,用于将确定所述输入神经元为广播数据,权值为分发数据,将分发数据分配成多个数据块,将所述多个数据块中的至少一个数据块以及多个运算指令中的至少一个运算指令发送给所述从处理电路;
所述多个从处理电路102,用于依据该运算指令对接收到的数据块执行运算得到中间结果,并将运算结果传输给所述主处理电路;
所述主处理电路101,用于将多个从处理电路发送的中间结果进行处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元。
所述从处理电路102包括:
乘法处理电路,用于对接收到的数据块执行乘积运算得到乘积结果;
转发处理电路(可选的),用于将接收到的数据块或乘积结果转发;
累加处理电路,用于对该乘积结果执行累加运算得到该中间结果。
具体的,所述乘法处理电路,用于实现权值与输入的定点数之间的乘法运算得到乘积结果,所述累加处理电路将乘积结果返回主处理电路101进行累加。
另一个实施例里,该运算指令为矩阵乘以矩阵的指令、累加指令、激活指令等等计算指令。
下面通过神经网络运算指令来说明如图1A所示的计算装置的具体计算方法。对于神经网络运算指令来说,其实际需要执行的公式可以为:s=s(∑wxi+b),其中,即将权值w乘以输入数据xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出结果s。
在一种可选的实施方案中,如图1E所示,所述运算单元包括:树型模块40,所述树型模块40包括:一个根端口401和多个支端口404,所述树型模块40的根端口连接所述主处理电路101,所述树型模块40的多个支端口分别连接多个从处理电路102中的一个从处理电路;
上述树型模块40具有收发功能,例如如图1E所示,该树型模块40即为发送功能,如图1I所示,该树型模块40即为接收功能。
所述树型模块40,用于转发所述主处理电路与所述多个从处理电路之间的数据块、权值以及运算指令。
可选的,该树型模块40为计算装置的可选择结果,其可以包括至少1层节点,该节点为具有转发功能的线结构,该节点本身可以不具有计算功能。如树型模块具有零层节点,即无需该树型模块。
可选的,该树型模块可以为n叉树结构,例如,如图1F所示的二叉树结构,当然也可以为三叉树结构,该n可以为大于等于2的整数。本申请具体实施方式并不限制上述n的具体取值,上述层数也可以为2,从处理电路可以连接除倒数第二层节点以外的其他层的节点,例如可以连接如图1F所示的倒数第一层的节点。
可选的,上述运算单元可以携带单独的缓存,如图1G所示,可以包括:神经元缓存单元,该神经元缓存单元63缓存该从处理电路的输入神经元向量数据和输出神经元值数据。
如图1H所示,该运算单元还可以包括:权值缓存单元64,用于缓存该从处理电路在计算过程中需要的权值数据。
在一种可选实施例中,运算单元12如图1B所示,可以包括分支处理电路103;其具体的连接结构如图1B所示,其中,
主处理电路101与分支处理电路103(一个或多个)连接,分支处理电路103与一个或多个从处理电路102连接;
分支处理电路103,用于执行转发主处理电路101与从处理电路102之间的数据或指令。
在一种可选实施例中,以神经网络运算中的全连接运算为例,过程可以为:y=f(wx+b),其中,x为输入神经元矩阵,w为权值矩阵,b为偏置标量,f为激活函数,具体可以为:sigmoid函数,tanh、relu、softmax函数中的任意一个。这里假设为二叉树结构,具有8个从处理电路,其实现的方法可以为:
控制器单元11从存储单元10内获取输入神经元矩阵x,权值矩阵w以及全连接运算指令,将输入神经元矩阵x,权值矩阵w以及全连接运算指令传输给主处理电路101;
主处理电路101确定该输入神经元矩阵x为广播数据,确定权值矩阵w为分发数据,将权值矩阵w拆分成8个子矩阵,然后将8个子矩阵通过树型模块分发给8个从处理电路102,将输入神经元矩阵x广播给8个从处理电路102,
从处理电路102并行执行8个子矩阵与输入神经元矩阵x的乘法运算和累加运算得到8个中间结果,将8个中间结果发送给主处理电路101;
主处理电路101,用于将8个中间结果排序得到wx的运算结果,将该运算结果执行偏置b的运算后执行激活操作得到最终结果y,将最终结果y发送至控制器单元,控制器单元将该最终结果y输出或存储至存储单元内。
如图1A所示的计算装置执行神经网络正向运算指令的方法具体可以为:
控制器单元11从指令存储单元内提取神经网络正向运算指令、神经网络运算指令对应的操作域以及至少一个操作码,控制器单元将该操作域传输至数据访问单元,将该至少一个操作码发送至运算单元。
控制器单元11从存储单元内提取该操作域对应的权值w和偏置b(当b为0时,不需要提取偏置b),将权值w和偏置b传输至运算单元的主处理电路,控制器单元从存储单元内提取输入数据Xi,将该输入数据Xi发送至主处理电路。
主处理电路101依据该至少一个操作码确定为乘法运算,确定输入数据Xi为广播数据,确定权值数据为分发数据,将权值w拆分成n个数据块;
控制器单元11的指令处理单元依据该至少一个操作码确定乘法指令、偏置指令和累加指令,将乘法指令、偏置指令和累加指令发送至主处理电路,主处理电路将该乘法指令、输入数据Xi以广播的方式发送给多个从处理电路,将该n个数据块分发给该多个从处理电路(例如具有n个从处理电路,那么每个从处理电路发送一个数据块);多个从处理电路102,用于依据该乘法指令将该输入数据Xi与接收到的数据块执行乘法运算得到中间结果,将该中间结果发送至主处理电路,该主处理电路101依据该累加指令将多个从处理电路发送的中间结果执行累加运算得到累加结果,依据该偏置指令将该累加结果执行加偏置b得到最终结果,将该最终结果发送至该控制器单元11。
另外,加法运算和乘法运算的顺序可以调换。
本申请提供的技术方案通过一个指令即神经网络运算指令即实现了神经网络的乘法运算以及偏置运算,在神经网络计算的中间结果均无需存储或提取,减少了中间数据的存储以及提取操作,所以其具有减少对应的操作步骤,提高神经网络的计算效果的优点。
对神经网络的训练/重训实际上是对某个损失函数进行优化的过程。损失函数就是在给定输入下,神经网络模型的预测结果(标签信息)与运算结果之间的差别。其中,训练的本质是寻找最优解,重训练则是指在已有的一个可能离最优解很近的次优解的情况下搜索最优解,即在一定的基础上继续训练。
在GPU/CPU上,一般用32bit的浮点数来表示数据以及执行计算。如上文所述,为了节省资源、提高速度,硬件平台希望采用较低比特、比如16bit、8bit定点数来表示数据并且执行计算。
定点计算指的是确定位宽并指定小数点的位置进而表示数据的过程。一个定点数由n bit整数和指数offset表示,其定义为:
f(n,offset)=n*2offset
举例来说,以n=8的定点化为例,即位宽为8,offset为小数点位置的相反数,如图1J所示,浮点数为1001.1011,offset=-4,将二进制为10011011转化为10进制,即1*20+1*21+0*22+1*23+1*24+0*25+0*26+1*27=155,则定点数=155*2-4=9.6875。
对于神经网络而言,定点的对象可以是网络本身,对网络定点化的时间代价较小,一次定点即可完成;定点的对象还可以是神经网络的正向计算过程,对正向计算过程定点化的时间代价较大,需要进行多次定点。
然而,由于使用近似值表示浮点数,定点计算往往会造成网络预测结果精确度的下降,从而影响网络的性能。但是,可以通过选取适当的定点参数,并通过定点化训练(Fixed fine-tuning),使网络在训练过程中适应定点方式下的运算,从而有效地弥补定点带来的精度损失。
基于此,本申请提供一种如图1A~1I所示的计算装置,可在保证所需精度的情况下,提高运算效率。
具体的,所述存储单元10,用于存储浮点神经网络的初始化参数和训练数据集;所述运算单元12,用于对所述初始化参数进行定点化,以得到待训练神经网络;所述控制器单元11,用于控制所述运算单元12根据所述训练数据集对所述待训练神经网络进行重训练,以得到目标神经网络,所述目标神经网络的损失函数达到或超过预设精度。
在本申请中,对于训练数据集的类型和每类训练数据集包括的训练数据的数量不作限制,类型越多,数量越多,训练次数越多,神经网络的识别精度越高。训练数据集中每一训练数据可以包括对应的标签信息,该标签信息用于与训练结果进行比较,以得到损失函数。
在本申请中,浮点神经网络为传统神经网络,例如:通常在GPU/CPU上进行32bit浮点运算的神经网络。而目标神经网络为浮点神经网络进过定点化,且经过重训练得到的神经网络,该目标神经网络的权值、偏置或输入数据可以是浮点数,但是比特数小于浮点神经网络的位宽,可以是8bit或16bit。
初始化参数包括所述浮点神经网络的权值、偏置,也可包括训练数据集或输入的数据类型,在此不做限定。本申请对于对所述初始化参数进行定点化不做限定,在一种可能的实施例中,在所述对所述初始化参数进行定点化,以得到待训练神经网络方面,所述运算单元12具体用于将所述初始化参数进行划分,以得到多个数据块;确定所述多个所述数据块中每一数据块对应的参考位宽和参考指数,以得到多个参考位宽和多个参考指数;根据所述多个所述数据块中每一数据块对应的参考位宽和参考指数,对该数据块进行定点化,以得到所述待训练神经网络。
其中,数据块的划分可按照神经网络的层级划分、或输入数据、权值等数据类型划分,或者结合二者,即每层中一类数据划分为一个数据块。
可以理解,将初始化参数划分为多个数据块,然后确定各个数据块对应的参考位宽和参考指数,并根据多个数据块中每一数据块对应的参考位宽和参考指数对该数据块进行定点化以得到待训练神经网络,由于同种类型的数据分布较为稳定,则同一个数据块采用异构参考位宽和参考指数,如此,可提高运算效率。
本申请对于如何确定所述多个所述数据块中每一数据块对应的参考位宽和参考指数,以得到多个参考位宽和多个参考指数不做限定,参考位宽为预先设置的,可在重训练的过程中进行更新;参考指数可根据目标数据块对应的多个浮点数统计而来,具体的,在一种可能的实施例中,所述多个数据块包括目标数据块,所述运算单元12具体用于获取所述目标数据块对应的多个浮点数和预先设置的参考位宽;获取所述多个浮点数之间的最大绝对值和小于所述目标数据块对应的参考位宽的正整数,以得到多个待参考指数;根据所述多个待参考指数中每一待参考指数获取多个数值范围;确定所述多个数值范围中包括所述最大绝对值的最小数值范围,将所述最小数值范围对应的待参考指数作为所述目标数据块对应的参考指数。
举例来说,假设多个浮点数之间的最大绝对值为2.35,参考位宽为8,则可确定[-128,127]范围内的整数,多个待参考指数为1~7,则待参考指数为7对应的数值范围为(-128*2-7=-0.9921875,127*2-7=0.9921875);待参考指数为6对应的数值范围为(-128*2-6=-1.984375,127*2-6=1.984375);待参考指数为5对应的数值范围为(-128*2-5=-4,127*2-5=3.96875),如此,则最大绝对值落入待参考指数为5对应的数值范围,确定参考指数为5。
可以理解,以目标数据块为例,先确定预先为目标数据块确定的参考位宽和目标数据块对应的多个浮点数,然后以多个浮点数之间的最大绝对值和小于参考位宽的正整数统计得到满足上述多个浮点数对应的最大指数,如此,以该参考指数和参考位宽进行定点化,可提高运算效率。
本申请对于根据所述训练数据集对所述待训练神经网络进行重训练,以得到目标神经网络不做限定,在一种可能的实施例中,所述运算单元12具体用于将所述训练数据集划分为多个训练子数据集;分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行迭代训练,以得到所述目标神经网络。
在本申请的一个实施例中,迭代训练可以包括针对训练子数据集进行一次正向运算和一次反向运算的过程。具体的,若神经网络的收敛阈值为预设精度,每一次进行重训练的神经网络为目标训练神经网络,每一次进行重训练的训练子数据集为目标训练子数据集,则正向运算为将目标训练子数据集输入至目标训练神经网络以得到目标运算结果,根据该目标运算结果与该训练子数据集对应的预设运算结果确定目标损失函数,若该目标损失函数达到或超过所述预设精度,则执行反向运算,否则,结束训练;反向运算为根据该目标损失函数对目标训练神经网络进行更新,得到更新的训练神经网络,然后,将所述更新的训练神经网络作为所述目标训练神经网络,以供下一个训练子数据集进行训练。当然,若无下一个训练子数据集,则说明各个训练子数据集均训练完毕,也可结束训练。
可以理解,由于训练数据集中可能有成千上万条数据,将所述训练数据集划分为多个训练子数据集,然后针对每一训练子数据集进行一次正向计算和一次反向计算,从而更新一次网络权重参数。该过程被称为一个训练周期(epoch)内的一次迭代。在下一个训练周期中,将重新从该训练数据集中取数据,再次执行正向计算、反向计算、更新神经网络的训练过程,直至神经网络达到期望精度。如此,可提高计算效率。
进一步的,在一种可能的实施例中,所述运算单元12具体用于若所述预设精度小于或等于第一阈值,则分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行定点正向运算和定点反向运算,以得到所述目标神经网络;若所述预设精度大于所述第一阈值,则分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行定点正向运算和浮点反向运算,以得到所述目标神经网络。
其中,浮点运算(包括浮点正向运算和/或浮点反向运算)可以是指直接根据得到的浮点数进行运算。而定点运算(包括定点正向运算和/或定点反向运算)将该浮点数按照对应的转换规则,转换为定点数,再采用经转换后得到的定点数进行运算。
本申请对于第一阈值也不做限定。可以理解,在预设精度小于或等于第一阈值时,采用定点正向运算和定点反向运算对待训练神经网络进行训练,如此,可节省运算时间和功耗。而在预设精度大于预设要求时,采用定点正向运算和浮点反向运算对待训练神经网络进行训练,如此,可提高目标神经网络的计算精度。
本申请以定点正向运算和定点反向运算为例进行说明,在一种可能的实施例中,如图1K所示,所述运算单元12具体用于S101:将所述多个训练子数据集中的首个进行训练的训练子数据集作为目标训练子数据集,并将所述待训练神经网络作为目标训练神经网络,迭代执行:S102:根据所述目标训练子数据集,对所述目标训练神经网络进行定点正向运算,以得到目标运算结果;S103:根据所述目标运算结果与所述目标训练子数据集对应的标准值获取目标损失函数;S104:若所述目标损失函数未达到所述预设精度,则根据所述目标损失函数对所述目标训练神经网络进行定点反向运算,以得到参考训练神经网络;S105:将所述目标训练子数据集的下一个训练子数据集作为所述目标训练子数据集,将所述参考训练神经网络作为所述目标训练神经网络;S106:若所述目标损失函数达到或超过所述预设精度,或所述多个训练子数据集训练完成时,根据所述目标损失函数,对所述目标训练神经网络进行定点反向运算,以得到所述目标神经网络,结束迭代。
其中,首个进行训练的训练子数据集可以是多个训练子数据集中的任意一个训练子数据集。
可以理解,分别对训练子数据集进行定点正向运算,再完成定点正向运算时,获取得到的目标训练神经网络的目标损失函数,若达到或超过预设精度,则完成训练,否则,返回步骤S102,继续对目标训练神经网络进行定点正向运算,当然,在所有的训练子数据集训练完成时,也结束训练,如此,依据定点正向运算和定点反向运算可提高训练效率。
在定点反向运算的过程中,需对浮点转化定点的位宽进行调整,在一种可能的实施例中,所述运算单元12具体用于根据所述目标损失函数获取所述目标训练神经网络中每一层对应的权值梯度,以得到多个权值梯度;根据所述多个权值梯度对所述目标训练神经网络中每一层进行更新,以得到多个更新权值;根据所述多个更新权值和所述多个权值梯度确定所述目标训练神经网络中的待更新位宽层和不更新位宽层;对所述待更新位宽层和所述不更新位宽层分别进行定点化更新,以得到所述参考训练神经网络。
其中,待更新位宽层为定点数对应的数值范围难以满足当前的更新权值或权值梯度,对于如何确定待更新位宽层的方法不做限定,在一种可能的实施例中,所述运算单元12具体用于获取所述多个权值梯度中每一权值梯度
Figure GDA0003784455910000131
和该权值梯度
Figure GDA0003784455910000132
对应的层的更新权重Sw之间的和值,与该权值梯度
Figure GDA0003784455910000133
对应的下一层的权值梯度
Figure GDA0003784455910000134
之间的差值,以得到多个第一参考值;若所述多个第一参考值T中的一个第一参考值T大于该层对应的参考阈值Tr,则确定该层为所述待更新位宽层,否则,确定该层为所述不更新位宽层。
其中,该层对应的参考阈值Tr也不做限定,可根据经验进行预先设置,也可预设公式,例如:通过改变输入参数的方式获取与输入参数匹配的参考阈值Tr,还可通过机器学习的方式获取,或者根据上层输出神经元的个数进行设置,即上层输出神经元的个数越高,参考阈值Tr越大。
参考值
Figure GDA0003784455910000135
若目标训练神经网络中的目标层包括多个下层梯度,在一种可能的实施例中,所述运算单元12具体用于获取所述目标层的权值梯度和更新权重之间的和值,与所述目标层的下一层的权值梯度对应的差值,以得到多个子参考值;根据所述多个子参考值确定所述目标层对应的第一参考值。
如图1L所示,目标层为L1、目标层的下一层L21、L22、……L2n,则目标层与L21对应的子参考值
Figure GDA0003784455910000136
目标层与L22对应的子参考值
Figure GDA0003784455910000137
……,目标层与L2n对应的子参考值
Figure GDA0003784455910000138
也就是说,根据T1、T2、……、Tn确定该层对应的第一参考值T。
本申请对于如何确定第一参考值T不做限定,可从中任一一个大于该层对应参考阈值Tr的子参考值作为该层对应的第一参考值T;也可从大于该层对应参考阈值Tr的多个子参考值中,选取最小值或最大值作为该层对应的第一参考值T;还可确定多个子参考值的均值,从大于该层对应均值的多个子参考值中选取一个作为该层对应的第一参考值T,或者按照预先配置的权重序列,依次与对应的子参考值进行加权,以得到目标值,若该目标值大于该层对应的参考阈值Tr,则确定该目标值为该层对应的第一参考值T等等。
在一种可能的实施例中,所述运算单元12具体用于从所述多个子参考值中选取大于所述目标层对应的参考阈值的多个待确定子参考值,将所述多个待确定子参考值中的最大值作为所述目标层对应的第一参考值T。如此,选取出来的第一参考值T可保证精度够用。
可以理解,计算目标训练神经网络中各个层的第一参考值T,若一个层的第一参考值T大于该层对应的参考阈值Tr,则确定该层为待更新位宽层,否则,确定该层为所述不更新位宽层,如此,确定待更新位宽层和不更新位宽层。
与之对应的定点化更新方法,即在所述对所述待更新位宽层和所述不更新位宽层分别进行定点化更新,以得到所述参考训练神经网络方面,所述运算单元12具体用于确定各个所述待更新位宽层对应的增加位宽b1;获取所述参考位宽b2和所述增加位宽b1之间的和值,以得到第一位宽b;根据所述第一位宽b对所述待更新位宽层对应的更新权值进行定点化,并根据所述参考位宽b2对所述不更新位宽层对应的更新权值进行定点化,以得到所述参考训练神经网络。
其中,确定增加位宽的方法,可按照8位、16位、32位、64位进行调整,也可按照预设步长进行调整,例如预设步长为1,则每次调整一位,还可通过参考阈值Tr与参考值T之间的差值、下一层的权值梯度
Figure GDA0003784455910000141
和更新权重Sw调整权值梯度
Figure GDA0003784455910000142
等。对于其调整方式可选择往高位调整增加位宽,可扩大运算数值的范围,也可从低位调整增加位宽,可扩大神经网络的运算精度。
可以理解,在确定增加位宽b1之后的待更新位宽层,可根据增加位宽b1和参考位宽b2之间的和值对应的第一位宽b进行定点化,而不更新位宽层依然根据参考位宽b2进行定点化,从而根据修改后的更新权值进行训练,便于提高训练精度。
在一种可能的实施例中,所述运算单元12还用于重新计算所述待更新位宽层对应的权值梯度和更新权重之间的和值,以及与所述待更新位宽层的下一层的权值梯度之间的差值,以得到第二参考值;若所述第二参考值小于或等于所述待更新位宽层的参考阈值,则确定所述待更新位宽层对应的减少位宽;获取所述第一位宽和所述减少位宽之间的差值,以得到第二位宽;根据所述第二位宽对所述待更新位宽层对应的更新权值进行定点化。
对于减少位宽的方法可参照增加位宽的方法,在此不再赘述。
可以理解,重新确定当前层的第二参考值,若第二参考值小于或等于待更新位宽层的参考阈值,则确定该层对应的减少位宽,否则,确定该层对应的增加位宽,从而节省计算开销,加快运算速度。
在确定第一位宽之后,在一种可能的实施例中,所述运算单元12还用于根据所述第一位宽确定所述待更新位宽层对应的目标指数;若所述目标指数与之前的所述参考指数之间的差值大于第二阈值,则确定所述目标指数为所述参考指数与所述第二阈值之间的和值或差值。
其中,第二阈值不做限定,可为2。对于确定目标指数的方法可参照之前描述的确定参考指数的方法,在此不再赘述。对于目标指数的更新指数的频率不做限定,可在正向训练之前进行更新,也可以不与更新位宽完全一致,例如:根据神经网络参数随着训练的变化决定,可以采取间隔固定迭代次数,或者设置更新阈值等方法。
可以理解,针对第一位宽更新参考指数,提高训练效率,且设置一个第二阈值,则可避免因定点化误差过大导致神经网络参数剧烈变化,进而难以收敛的问题,从而进一步提高训练效率。
在定点正向训练时,也可参照上述的方法调整位宽,即在一种可能的实施例中,获取该层的权重和权值梯度之间的和值,以及与下一层的权值梯度之间的差值,得到一个参考值,若该参考值大于该层对应的参考阈值,则确定该层为待更新位宽层,且增加位宽。本申请对于正向运算中增加位宽的描述不做限定,可参照反向运算的相关描述。
请参见图2,图2是本申请实施例提供的一种重训练方法的流程示意图,应用于计算装置,所述计算装置包括控制器单元、存储单元和运算单元。具体的,如图2所示,上述方法包括:
S201:通过存储单元存储浮点神经网络的初始化参数和训练数据集。
S202:通过运算单元对所述初始化参数进行定点化,以得到待训练神经网络。
S203:通过控制器单元控制所述运算单元根据所述训练数据集对所述待训练神经网络进行重训练,以得到目标神经网络,所述目标神经网络的损失函数达到或超过预设精度。
可以理解,通过运算单元对浮点神经网络的初始化参数进行定点化以得到待训练神经网络,根据所述训练数据集对所述待训练神经网络进行重训练以得到目标神经网络,若所述目标神经网络的损失函数达到或超过预设精度,则结束重训练。如此,可在保证所需精度的情况下,提高运算效率。
在一种可能的实施例中,所述通过所述运算单元对所述初始化参数进行定点化,以得到待训练神经网络包括:通过所述运算单元将所述初始化参数进行划分,以得到多个数据块;通过所述运算单元确定所述多个所述数据块中每一数据块对应的参考位宽和参考指数,以得到多个参考位宽和多个参考指数;通过所述运算单元根据所述多个所述数据块中每一数据块对应的参考位宽和参考指数,对该数据块进行定点化,以得到所述待训练神经网络。
在一种可能的实施例中,所述多个数据块包括目标数据块,所述通过所述运算单元确定所述多个所述数据块中每一数据块对应的参考位宽和参考指数,以得到多个参考位宽和多个参考指数包括:通过所述运算单元获取所述目标数据块对应的多个浮点数和预先设置的参考位宽;通过所述运算单元获取所述多个浮点数之间的最大绝对值和小于所述目标数据块对应的参考位宽的正整数,以得到多个待参考指数;通过所述运算单元根据所述多个待参考指数中每一待参考指数获取多个数值范围;通过所述运算单元确定所述多个数值范围中包括所述最大绝对值的最小数值范围,将所述最小数值范围对应的待参考指数作为所述目标数据块对应的参考指数。
在一种可能的实施例中,所述通过所述运算单元根据所述训练数据集对所述待训练神经网络进行重训练,以得到目标神经网络包括:通过所述运算单元将所述训练数据集划分为多个训练子数据集;通过所述运算单元分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行迭代训练,以得到所述目标神经网络。
在一种可能的实施例中,所述通过所述运算单元分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行迭代训练,以得到所述目标神经网络包括:若所述预设精度小于或等于第一阈值,则通过所述运算单元分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行定点正向运算和定点反向运算,以得到所述目标神经网络;若所述预设精度大于所述第一阈值,则通过所述运算单元分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行定点正向运算和浮点反向运算,以得到所述目标神经网络。
在一种可能的实施例中,所述通过所述运算单元分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行定点正向运算和浮点反向运算,以得到所述目标神经网络包括:通过所述运算单元将所述多个训练子数据集中的首个进行训练的训练子数据集作为目标训练子数据集,并将所述待训练神经网络作为目标训练神经网络,迭代执行:
通过所述运算单元根据所述目标训练子数据集,对所述目标训练神经网络进行定点正向运算,以得到目标运算结果;通过所述运算单元根据所述目标运算结果与所述目标训练子数据集对应的标准值获取目标损失函数;若所述目标损失函数未达到所述预设精度,则通过所述运算单元根据所述目标损失函数对所述目标训练神经网络进行定点反向运算,以得到参考训练神经网络;通过所述运算单元将所述目标训练子数据集的下一个训练子数据集作为所述目标训练子数据集,将所述参考训练神经网络作为所述目标训练神经网络;若所述目标损失函数达到或超过所述预设精度,或所述多个训练子数据集训练完成时,通过所述运算单元根据所述目标损失函数,对所述目标训练神经网络进行定点反向运算,以得到所述目标神经网络,结束迭代。
在一种可能的实施例中,所述通过所述运算单元根据所述目标损失函数对所述目标训练神经网络进行定点反向运算,以得到参考训练神经网络包括:通过所述运算单元根据所述目标损失函数获取所述目标训练神经网络中每一层对应的权值梯度,以得到多个权值梯度;通过所述运算单元根据所述多个权值梯度对所述目标训练神经网络中每一层进行更新,以得到多个更新权值;通过所述运算单元根据所述多个更新权值和所述多个权值梯度确定所述目标训练神经网络中的待更新位宽层和不更新位宽层;通过所述运算单元对所述待更新位宽层和所述不更新位宽层分别进行定点化更新,以得到所述参考训练神经网络。
在一种可能的实施例中,所述通过所述运算单元根据所述多个更新权值和所述多个权值梯度确定所述目标训练神经网络中的待更新位宽层和不更新位宽层包括:通过所述运算单元获取所述多个权值梯度中每一权值梯度和该权值梯度对应的层的更新权重之间的和值,与该权值梯度对应的下一层的权值梯度之间的差值,以得到多个第一参考值;若所述多个第一参考值中的一个第一参考值大于该层对应的参考阈值,则通过所述运算单元确定该层为所述待更新位宽层,否则,通过所述运算单元确定该层为所述不更新位宽层;
所述通过所述运算单元对所述待更新位宽层和所述不更新位宽层分别进行定点化更新,以得到所述参考训练神经网络包括:通过所述运算单元确定各个所述待更新位宽层对应的增加位宽;通过所述运算单元获取所述参考位宽和所述增加位宽之间的和值,以得到第一位宽;通过所述运算单元根据所述第一位宽对所述待更新位宽层对应的更新权值进行定点化,并根据所述参考位宽对所述不更新位宽层对应的更新权值进行定点化,以得到所述参考训练神经网络。
在一种可能的实施例中,在所述通过所述运算单元根据所述第一位宽对所述待更新位宽层对应的更新权值进行定点化之后,所述方法还包括:通过所述运算单元重新计算所述待更新位宽层对应的权值梯度和更新权重之间的和值,以及与所述待更新位宽层的下一层的权值梯度之间的差值,以得到第二参考值;若所述第二参考值小于或等于所述待更新位宽层的参考阈值,则通过所述运算单元确定所述待更新位宽层对应的减少位宽;通过所述运算单元获取所述第一位宽和所述减少位宽之间的差值,以得到第二位宽;通过所述运算单元根据所述第二位宽对所述待更新位宽层对应的更新权值进行定点化。
在一种可能的实施例中,所述目标训练神经网络包括目标层,若所述目标层包括多个下层梯度,所述通过所述运算单元获取所述多个权值梯度中每一权值梯度和该权值梯度对应的层的更新权重之间的和值,与该权值梯度对应的下一层的权值梯度之间的差值,以得到多个第一参考值包括:通过所述运算单元获取所述目标层的权值梯度和更新权重之间的和值,与各个所述目标层的下一层的权值梯度对应的差值,以得到多个子参考值;通过所述运算单元根据所述多个子参考值确定所述目标层对应的第一参考值。
在一种可能的实施例中,所述通过所述运算单元根据所述多个子参考值确定所述目标层对应的第一参考值,包括:通过所述运算单元从所述多个子参考值中选取大于所述目标层对应的参考阈值的多个待确定子参考值,将所述多个待确定子参考值中的最大值作为所述目标层对应的第一参考值。
在一种可能的实施例中,所述方法还包括:通过所述运算单元根据所述第一位宽确定所述待更新位宽层对应的目标指数;若所述目标指数与之前的所述参考指数之间的差值大于第二阈值,则通过所述运算单元确定所述目标指数为所述参考指数与所述第二阈值之间的和值或差值。
在本发明的一个实施例中提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行所述重训练方法中所描述的实现方式。
在本发明的另一实施例中提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令当被处理器执行时使上述处理器执行所述重训练方法中所描述的实现方式。
本申请还揭露了一个机器学习运算装置,其包括一个或多个在本申请中提到的计算装置,用于从其他处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上计算装置时,计算装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请还揭露了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其他处理装置。机器学习运算装置与其他处理装置进行交互,共同完成用户指定的操作。图3为组合处理装置的示意图。
其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其他处理装置间传输数据和控制指令。该机器学习运算装置从其他处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其他处理装置。
可选的,该结构如图3所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其他处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。参阅图4,图4提供了一种板卡,上述板卡除了包括上述芯片以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件、接口装置和控制器件;
所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是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)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (20)

1.一种计算装置,其特征在于,所述计算装置包括控制器单元、与所述控制器单元连接的存储单元,以及与所述控制器单元和所述存储单元连接的运算单元,其中:
所述存储单元,用于存储浮点神经网络的初始化参数和训练数据集;
所述运算单元,用于对所述初始化参数进行定点化,以得到待训练神经网络;
所述控制器单元,用于控制所述运算单元根据所述训练数据集对所述待训练神经网络进行重训练,以得到目标神经网络,所述目标神经网络的损失函数达到或超过预设精度;
所述运算单元具体用于将所述训练数据集划分为多个训练子数据集;分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行迭代训练,以得到所述目标神经网络;所述迭代训练包括针对所述训练子数据集进行一次正向运算和一次反向运算的过程,每一次进行重训练的神经网络为目标训练神经网络,每一次进行重训练的训练子数据集为目标训练子数据集,若所述正向运算得到的目标损失函数未达到所述预设精度,则执行所述反向运算;所述反向运算为根据所述目标损失函数对所述目标训练神经网络进行更新;
所述运算单元具体用于根据所述目标损失函数获取所述目标训练神经网络中每一层对应的权值梯度,以得到多个权值梯度;根据所述多个权值梯度对所述目标训练神经网络中每一层进行更新,以得到多个更新权值;获取所述多个权值梯度中每一权值梯度和该权值梯度对应的层的更新权重之间的和值,与该权值梯度对应的下一层的权值梯度之间的差值,以得到多个第一参考值;若所述多个第一参考值中的一个第一参考值大于该层对应的参考阈值,则确定该层为待更新位宽层,否则,确定该层为不更新位宽层;确定各个所述待更新位宽层对应的增加位宽;获取参考位宽和所述增加位宽之间的和值,以得到第一位宽;根据所述第一位宽对所述待更新位宽层对应的更新权值进行定点化,并根据所述参考位宽对所述不更新位宽层对应的更新权值进行定点化,以得到参考训练神经网络,将所述参考训练神经网络作为下一次重训练的所述目标训练神经网络。
2.根据权利要求1所述的计算装置,其特征在于,所述运算单元具体用于将所述初始化参数进行划分,以得到多个数据块;确定所述多个所述数据块中每一数据块对应的参考位宽和参考指数,以得到多个参考位宽和多个参考指数;根据所述多个所述数据块中每一数据块对应的参考位宽和参考指数,对该数据块进行定点化,以得到所述待训练神经网络。
3.根据权利要求2所述的计算装置,其特征在于,所述多个数据块包括目标数据块;
所述运算单元具体用于获取所述目标数据块对应的多个浮点数和预先设置的参考位宽;获取所述多个浮点数之间的最大绝对值和小于所述目标数据块对应的参考位宽的正整数,以得到多个待参考指数;根据所述多个待参考指数中每一待参考指数获取多个数值范围;确定所述多个数值范围中包括所述最大绝对值的最小数值范围,将所述最小数值范围对应的待参考指数作为所述目标数据块对应的参考指数。
4.根据权利要求1至3中任一项所述的计算装置,其特征在于,所述运算单元具体用于若所述预设精度小于或等于第一阈值,则分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行定点正向运算和定点反向运算,以得到所述目标神经网络;若所述预设精度大于所述第一阈值,则分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行定点正向运算和浮点反向运算,以得到所述目标神经网络。
5.根据权利要求4所述的计算装置,其特征在于,所述运算单元具体用于将所述多个训练子数据集中的首个进行训练的训练子数据集作为目标训练子数据集,并将所述待训练神经网络作为目标训练神经网络,迭代执行:
根据所述目标训练子数据集,对所述目标训练神经网络进行定点正向运算,以得到目标运算结果;根据所述目标运算结果与所述目标训练子数据集对应的标准值获取目标损失函数;若所述目标损失函数未达到所述预设精度,则根据所述目标损失函数对所述目标训练神经网络进行定点反向运算,以得到参考训练神经网络;将所述目标训练子数据集的下一个训练子数据集作为所述目标训练子数据集,将所述参考训练神经网络作为所述目标训练神经网络;若所述目标损失函数达到或超过所述预设精度,或所述多个训练子数据集训练完成时,根据所述目标损失函数,对所述目标训练神经网络进行定点反向运算,以得到所述目标神经网络,结束迭代。
6.根据权利要求1至3中任一项所述的计算装置,其特征在于,所述运算单元还用于重新计算所述待更新位宽层对应的权值梯度和更新权重之间的和值,以及与所述待更新位宽层的下一层的权值梯度之间的差值,以得到第二参考值;若所述第二参考值小于或等于所述待更新位宽层的参考阈值,则确定所述待更新位宽层对应的减少位宽;获取所述第一位宽和所述减少位宽之间的差值,以得到第二位宽;根据所述第二位宽对所述待更新位宽层对应的更新权值进行定点化。
7.根据权利要求1至3中任一项所述的计算装置,其特征在于,所述目标训练神经网络包括目标层,若所述目标层包括多个下层梯度,所述运算单元具体用于获取所述目标层的权值梯度和更新权重之间的和值,与各个所述目标层的下一层的权值梯度对应的差值,以得到多个子参考值;根据所述多个子参考值确定所述目标层对应的第一参考值。
8.根据权利要求7所述的计算装置,其特征在于,所述运算单元具体用于从所述多个子参考值中选取大于所述目标层对应的参考阈值的多个待确定子参考值,将所述多个待确定子参考值中的最大值作为所述目标层对应的第一参考值。
9.根据权利要求2或3所述的计算装置,其特征在于,所述运算单元还用于根据所述第一位宽确定所述待更新位宽层对应的目标指数;若所述目标指数与之前的所述参考指数之间的差值大于第二阈值,则确定所述目标指数为所述参考指数与所述第二阈值之间的和值或差值。
10.一种重训练方法,其特征在于,应用于计算装置,所述计算装置包括控制器单元、存储单元和运算单元,所述方法包括:
通过所述存储单元存储浮点神经网络的初始化参数和训练数据集;
通过所述运算单元对所述初始化参数进行定点化,以得到待训练神经网络;
通过所述控制器单元控制所述运算单元根据所述训练数据集对所述待训练神经网络进行重训练,以得到目标神经网络,所述目标神经网络的损失函数达到或超过预设精度;
其中,所述运算单元根据所述训练数据集对所述待训练神经网络进行重训练,以得到目标神经网络,包括:
所述运算单元将所述训练数据集划分为多个训练子数据集;
所述运算单元分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行迭代训练,以得到目标神经网络;所述迭代训练包括针对所述训练子数据集进行一次正向运算和一次反向运算的过程,每一次进行重训练的神经网络为目标训练神经网络,每一次进行重训练的训练子数据集为目标训练子数据集,若所述正向运算得到的目标损失函数未达到所述预设精度,则执行所述反向运算;所述反向运算为根据所述目标损失函数对所述目标训练神经网络进行更新;
所述根据所述目标损失函数对所述目标训练神经网络进行更新,包括:
根据所述目标损失函数获取所述目标训练神经网络中每一层对应的权值梯度,以得到多个权值梯度;
根据所述多个权值梯度对所述目标训练神经网络中每一层进行更新,以得到多个更新权值;
获取所述多个权值梯度中每一权值梯度和该权值梯度对应的层的更新权重之间的和值,与该权值梯度对应的下一层的权值梯度之间的差值,以得到多个第一参考值;
若所述多个第一参考值中的一个第一参考值大于该层对应的参考阈值,则确定该层为待更新位宽层,否则,确定该层为不更新位宽层;
确定各个所述待更新位宽层对应的增加位宽;
获取参考位宽和所述增加位宽之间的和值,以得到第一位宽;
根据所述第一位宽对所述待更新位宽层对应的更新权值进行定点化,并根据所述参考位宽对所述不更新位宽层对应的更新权值进行定点化,以得到参考训练神经网络,将所述参考训练神经网络作为下一次重训练的所述目标训练神经网络。
11.根据权利要求10所述的方法,其特征在于,所述通过所述运算单元对所述初始化参数进行定点化,以得到待训练神经网络,包括:
通过所述运算单元将所述初始化参数进行划分,以得到多个数据块;
通过所述运算单元确定所述多个所述数据块中每一数据块对应的参考位宽和参考指数,以得到多个参考位宽和多个参考指数;
通过所述运算单元根据所述多个所述数据块中每一数据块对应的参考位宽和参考指数,对该数据块进行定点化,以得到待训练神经网络。
12.根据权利要求11所述的方法,其特征在于,所述多个数据块包括目标数据块,所述通过所述运算单元确定所述多个所述数据块中每一数据块对应的参考位宽和参考指数,以得到多个参考位宽和多个参考指数,包括:
通过所述运算单元获取所述目标数据块对应的多个浮点数和预先设置的参考位宽;
通过所述运算单元获取所述多个浮点数之间的最大绝对值和小于所述目标数据块对应的参考位宽的正整数,以得到多个待参考指数;
通过所述运算单元根据所述多个待参考指数中每一待参考指数获取多个数值范围;
通过所述运算单元确定所述多个数值范围中包括所述最大绝对值的最小数值范围,将所述最小数值范围对应的待参考指数作为所述目标数据块对应的参考指数。
13.根据权利要求10至12中任一项所述的方法,其特征在于,所述运算单元分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行迭代训练,以得到目标神经网络,包括:
若所述预设精度小于或等于第一阈值,则所述运算单元分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行定点正向运算和定点反向运算,以得到目标神经网络;
若所述预设精度大于所述第一阈值,则所述运算单元分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行定点正向运算和浮点反向运算,以得到目标神经网络。
14.根据权利要求13所述的方法,其特征在于,所述运算单元分别根据所述多个训练子数据集中每一训练子数据集,对所述待训练神经网络进行定点正向运算和定点反向运算,以得到目标神经网络,包括:
通过所述运算单元将所述多个训练子数据集中的首个进行训练的训练子数据集作为目标训练子数据集,并将所述待训练神经网络作为目标训练神经网络,迭代执行:
通过所述运算单元根据所述目标训练子数据集,对所述目标训练神经网络进行定点正向运算,以得到目标运算结果;
通过所述运算单元根据所述目标运算结果与所述目标训练子数据集对应的标准值获取目标损失函数;
若所述目标损失函数未达到所述预设精度,则通过所述运算单元根据所述目标损失函数对所述目标训练神经网络进行定点反向运算,以得到参考训练神经网络;
通过所述运算单元将所述目标训练子数据集的下一个训练子数据集作为所述目标训练子数据集,将所述参考训练神经网络作为所述目标训练神经网络;
若所述目标损失函数达到或超过所述预设精度,或所述多个训练子数据集训练完成时,通过所述运算单元根据所述目标损失函数,对所述目标训练神经网络进行定点反向运算,以得到目标神经网络,结束迭代。
15.根据权利要求10至12中任一项所述的方法,其特征在于,在所述根据所述第一位宽对所述待更新位宽层对应的更新权值进行定点化之后,所述方法还包括:
重新计算所述待更新位宽层对应的权值梯度和更新权重之间的和值,以及与所述待更新位宽层的下一层的权值梯度之间的差值,以得到第二参考值;
若所述第二参考值小于或等于所述待更新位宽层的参考阈值,则确定所述待更新位宽层对应的减少位宽;
获取所述第一位宽和所述减少位宽之间的差值,以得到第二位宽;
根据所述第二位宽对所述待更新位宽层对应的更新权值进行定点化。
16.根据权利要求10至12中任一项所述的方法,其特征在于,所述目标训练神经网络包括目标层,若所述目标层包括多个下层梯度,所述获取所述多个权值梯度中每一权值梯度和该权值梯度对应的层的更新权重之间的和值,与该权值梯度对应的下一层的权值梯度之间的差值,以得到多个第一参考值,包括:
获取所述目标层的权值梯度和更新权重之间的和值,与各个所述目标层的下一层的权值梯度对应的差值,以得到多个子参考值;
根据所述多个子参考值确定所述目标层对应的第一参考值。
17.根据权利要求16所述的方法,其特征在于,所述根据所述多个子参考值确定所述目标层对应的第一参考值,包括:
从所述多个子参考值中选取大于所述目标层对应的参考阈值的多个待确定子参考值,将所述多个待确定子参考值中的最大值作为所述目标层对应的第一参考值。
18.根据权利要求11或12所述的方法,其特征在于,所述方法还包括:
通过所述运算单元根据所述第一位宽确定所述待更新位宽层对应的目标指数;
若所述目标指数与之前的所述参考指数之间的差值大于第二阈值,则通过所述运算单元确定所述目标指数为所述参考指数与所述第二阈值之间的和值或差值。
19.一种电子装置,其特征在于,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行权利要求10至18中任一项方法中的步骤的指令。
20.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求10至18中任一项所述的方法。
CN201811365184.6A 2018-11-16 2018-11-16 重训练方法及相关产品 Active CN111198714B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811365184.6A CN111198714B (zh) 2018-11-16 2018-11-16 重训练方法及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811365184.6A CN111198714B (zh) 2018-11-16 2018-11-16 重训练方法及相关产品

Publications (2)

Publication Number Publication Date
CN111198714A CN111198714A (zh) 2020-05-26
CN111198714B true CN111198714B (zh) 2022-11-18

Family

ID=70743925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811365184.6A Active CN111198714B (zh) 2018-11-16 2018-11-16 重训练方法及相关产品

Country Status (1)

Country Link
CN (1) CN111198714B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546905A (zh) * 2022-01-20 2022-05-27 广州广电五舟科技股份有限公司 一种多路cpu的通道同步控制方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107679618A (zh) * 2017-07-28 2018-02-09 北京深鉴科技有限公司 一种静态策略定点化训练方法及装置
CN107688849A (zh) * 2017-07-28 2018-02-13 北京深鉴科技有限公司 一种动态策略定点化训练方法及装置
WO2018076331A1 (zh) * 2016-10-31 2018-05-03 北京中科寒武纪科技有限公司 一种神经网络训练方法及装置
EP3370191A1 (en) * 2017-03-02 2018-09-05 Sony Corporation Apparatus and method implementing an artificial neural network training algorithm using weight tying

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007042440B3 (de) * 2007-09-06 2009-01-29 Siemens Ag Verfahren zur rechnergestützten Steuerung und/oder Regelung eines technischen Systems
US10643297B2 (en) * 2017-05-05 2020-05-05 Intel Corporation Dynamic precision management for integer deep learning primitives

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018076331A1 (zh) * 2016-10-31 2018-05-03 北京中科寒武纪科技有限公司 一种神经网络训练方法及装置
EP3370191A1 (en) * 2017-03-02 2018-09-05 Sony Corporation Apparatus and method implementing an artificial neural network training algorithm using weight tying
CN107679618A (zh) * 2017-07-28 2018-02-09 北京深鉴科技有限公司 一种静态策略定点化训练方法及装置
CN107688849A (zh) * 2017-07-28 2018-02-13 北京深鉴科技有限公司 一种动态策略定点化训练方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"FxpNet: Training a Deep Convolutional Neural Network in Fixed-Point Representation";Xi Chen 等;《IEEE》;20170703;第2494-2501页 *

Also Published As

Publication number Publication date
CN111198714A (zh) 2020-05-26

Similar Documents

Publication Publication Date Title
US11307865B2 (en) Data processing apparatus and method
TWI827432B (zh) 計算裝置、機器學習運算裝置、組合處理裝置、神經網絡芯片、電子設備、板卡、及計算方法
CN110163354B (zh) 一种计算装置及方法
CN110163350B (zh) 一种计算装置及方法
CN111045728B (zh) 一种计算装置及相关产品
CN111047022A (zh) 一种计算装置及相关产品
CN111353591A (zh) 一种计算装置及相关产品
US11775808B2 (en) Neural network computation device and method
CN111930681B (zh) 一种计算装置及相关产品
CN111198714B (zh) 重训练方法及相关产品
CN111368987B (zh) 一种神经网络计算装置和方法
CN111367567B (zh) 一种神经网络计算装置和方法
CN111368986B (zh) 一种神经网络计算装置和方法
CN111368990B (zh) 一种神经网络计算装置和方法
CN111047024A (zh) 一种计算装置及相关产品
CN111382848A (zh) 一种计算装置及相关产品
CN111222632B (zh) 计算装置、计算方法及相关产品
CN111368985A (zh) 一种神经网络计算装置和方法
CN111291884A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20221024

Address after: 710116 floor 24, office building 3, runjing Yiyuan, the junction of Haojing Avenue and Hanchi 1st Road, Fengdong new town, Xi'an, Shaanxi Province

Applicant after: Cambrian (Xi'an) integrated circuit Co.,Ltd.

Address before: 6 / F, block B, 168 Tonghui Road, Pudong New Area, Shanghai 201306

Applicant before: SHANGHAI CAMBRICON INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant