CN110533175A - 深度学习加速的方法和设备及深度神经网络 - Google Patents

深度学习加速的方法和设备及深度神经网络 Download PDF

Info

Publication number
CN110533175A
CN110533175A CN201810502897.6A CN201810502897A CN110533175A CN 110533175 A CN110533175 A CN 110533175A CN 201810502897 A CN201810502897 A CN 201810502897A CN 110533175 A CN110533175 A CN 110533175A
Authority
CN
China
Prior art keywords
data
neural network
deep neural
number format
point number
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
Application number
CN201810502897.6A
Other languages
English (en)
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to CN201810502897.6A priority Critical patent/CN110533175A/zh
Priority to US16/251,471 priority patent/US11586926B2/en
Priority to JP2019020886A priority patent/JP7163809B2/ja
Publication of CN110533175A publication Critical patent/CN110533175A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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/048Activation functions
    • 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/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/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Character Discrimination (AREA)

Abstract

本发明公开了一种深度学习加速的方法和设备及深度神经网络。所述方法包括:将深度神经网络的权重和偏差随机地初始化为n位定点数;将深度神经网络中计算量大于预定的第一阈值的层中的数据削减为m位定点数,其中m和n为整数且m<n,且保持其余层中的数据为n位定点数;以及对削减后的深度神经网络进行训练,直至收敛。

Description

深度学习加速的方法和设备及深度神经网络
技术领域
本发明涉及一种深度学习加速的方法和设备及深度神经网络。
背景技术
由于深度神经网络对复杂数据模型的特征提取能力,基于深度学习的方法在大量实际应用中已经实现了非常好的性能。深度神经网络通常采用单精度浮点或双精度浮点格式数据来训练和推理神经网络。单精度浮点和双精度浮点数据操作需要使用CPU或GPU上的浮点处理单元。因此,深度学习所使用的硬件、能耗、速度和内存占用受限于单精度浮点和双精度浮点数据格式。
NVIDIA通过把单精度浮点压缩到半精度浮点来加速处理时间和降低内存使用。与单精度浮点相比,半精度浮点在内存中占用了16个字节,牺牲了数据精度以追求内存占用更少,速度更快。NVIDIA和微软定义了半精度浮点类型,并把半精度浮点类型应用到GeForce FX产品中。在Suyog Gupta等人的“有限数值精度的深度学习(Deep Learningwith Limited Numerical Precision)”中,使用随机舍入的策略来限定浮点数据精度,并训练深度神经网络。
虽然现有技术中已存在通过减小数据的表达精度来加速深度学习的方法,但仍期望提供其他深度学习加速的方法。
发明内容
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,该概述并不是关于本发明的穷举性概述,它并非意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为后文的具体实施方式部分的铺垫。
鉴于以上提出的问题,本发明提出了一种新的定点位数削减方法来降低定点位冗余以达到加速深度神经网络的训练和推理速度。
根据本发明的一方面,提供一种深度学习加速的方法,包括:将深度神经网络的权重和偏差随机地初始化为n位定点数;将所述深度神经网络中计算量大于预定第一阈值的层中的数据削减为m位定点数,其中m和n为整数且m<n,且保持其余层中的数据为n位定点数;以及对削减后的深度神经网络进行训练,直至收敛。
根据本发明的另一方面,提供一种深度学习加速的设备,包括:初始化装置,被配置成将深度神经网络的权重和偏差随机地初始化为n位定点数;削减装置,被配置成将所述深度神经网络中计算量大于预定第一阈值的层中的数据削减为m位定点数,其中m和n为整数且m<n,且保持其余层中的数据为n位定点数;以及训练装置,被配置成对削减后的深度神经网络进行训练,直至收敛。
根据本发明的又一方面,提供了一种深度神经网络,包括:输入层,接收要由所述深度神经网络处理的数据;输出层,输出由所述深度神经网络处理后的结果;以及多个隐藏层,耦接在所述输入层与所述输出层之间并且根据所述深度神经网络所要实现的功能来设计,其中,所述深度神经网络根据本发明的深度学习加速的方法来进行训练。
根据本发明的再一方面,还提供了一种计算机可读存储介质,所述存储介质包括机器可读的程序代码,当在信息处理设备上执行所述程序代码时,所述程序代码使得所述信息处理设备执行根据本发明的上述方法。
根据本发明的再一方面,还提供了一种程序。所述程序包括机器可执行的指令,当在信息处理系统上执行所述指令时,所述指令使得所述信息处理系统执行根据本发明的上述方法。
通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优点将更加明显。
附图说明
参照附图来阅读本发明的各实施方式,将更容易理解本发明的其它特征和优点,在此描述的附图只是为了对本发明的实施方式进行示意性说明的目的,而非全部可能的实施,并且不旨在限制本发明的范围。在附图中:
图1示出了深度神经网络的基本结构的示意图。
图2示出了根据本发明实施方式的深度学习加速的方法的流程图。
图3示出了在深度学习加速的方法中自动调整数据的定点数格式的处理的流程图。
图4示出了在未执行定点位数削减的情形下在深度神经网络的训练期间从所有层采集的梯度值占比的示例的直方图。
图5示出了根据本发明实施方式的深度学习加速的设备的结构框图。
图6示出了用于实施根据本发明实施例的方法和设备的计算机的示意性框图。
具体实施方式
现参照附图对本发明的实施方式进行详细描述。应注意,以下描述仅仅是示例性的,而并不旨在限制本发明。此外,在以下描述中,将采用相同的附图标记表示不同附图中的相同或相似的部件。在以下描述的不同实施方式中的不同特征,可彼此结合,以形成本发明范围内的其他实施方式。
图1示出了深度神经网络的基本结构。如图1所示,深度神经网络包括输入层L1、隐藏层L2至Ln-1以及输出层Ln。输入层接收将由深度神经网络加以分析处理的信息的值,这些值可以是一张图片的像素,或者一段音频的样本振幅或者某系统或者游戏状态的数字化表示。隐藏层根据深度神经网络所要实现的功能来设计,并且根据实际应用情况的不同而可能具有不同的形态和大小。隐藏层可以包含卷积层、池化层、批标准化(batchnormalization)层、全连接层、droupout层、ReLU层、损失(loss)层、accurcy层,等等。输出层输出深度神经网络的处理结果。输入层、隐藏层和输出层的神经元的个数不限于图中所示,并且可以根据实际需要来设置。
图2示出了根据本发明实施方式的对图1所述的深度神经网络的训练进行加速的方法的流程图。如图2所示,深度学习加速的方法200包括初始化步骤S210、削减步骤S230和训练步骤S240。
在初始化步骤S210中,将深度神经网络的权重和偏差随机地初始化为n位定点数。可以通过读取训练好的定点数据,或者读取训练好的浮点数据并将浮点数据转换成定点数据来执行初始化。
另外,在初始化过程中,可以根据数据在深度神经网络中所归属的参数类型来为数据设定相应的定点数格式。一般而言,参数的数值越大,则定点数格式的小数部的位数越少。例如,对于权重、梯度和偏差,因其数值一般较小,从而可以使用1个符号位、0个整数位和n-1(或m-1)个小数位的定点数格式;而对于每层的输入和输出数据,因其数值一般校对,从而可以使用1个符号位、8个整数位和n-8(或m-8)个小数位的定点数格式。
在削减步骤S230中,将深度神经网络中计算量大于预定第一阈值的层中的数据削减为m位定点数,其中m<n,且保持其余层中的数据为n位定点数。在深度神经网络的训练过程中,诸如卷积层、池化层、批标准化层、ReLU层等的层通常存储量和计算量比较大,占用的处理时间比较长,削减其数据表达精度能够大大地减少对硬件资源的占用量并且减小处理时间。而诸如全连接层等的层通常存储量和计算量比较小,占用的处理时间比较短,削减其数据表达精度不能显著地减少对硬件资源的占用量和处理时间,反而可能降低深度神经网络的处理精度。因此,为了减小处理时间和对硬件资源的占用量并且为了防止深度神经网络的处理精度过分降低,本发明仅对计算量较大的层进行削减。本领域技术人员可以综合考虑诸如硬件资源、处理时间、能耗等因素来预先设定第一阈值,以在处理时间与处理精度之间进行折衷。
在训练步骤S240中,对削减后的深度神经网络进行训练,直至收敛。
在训练过程中,当数据溢出时,可以根据数据的大小来自动调整数据的定点数格式。图3示出了自动调整数据的定点数格式的处理的流程图。如图3所示,该调整处理300包括步骤S310至步骤S340。首先,在步骤S310中,判断数据是否超出当前定点数格式所能表达的范围。如果判断出数据未超出当前定点数格式所能表达的范围,则结束处理。如果在步骤S310中判断出数据超出当前定点数格式所能表达的范围,则处理进入步骤S320,在步骤S320中通过使当前定点数格式的整数部的位数增加1且使小数部的位数减小1来更新定点数格式。然后,处理进入步骤S330,在步骤S330中判断更新后的定点数格式的小数部的位数是否小于预定的第二阈值。如果判断出更新后的定点数格式的小数部的位数大于等于第二阈值,则处理转入步骤S310继续处理。如果在步骤S330中判断出更新后的定点数格式的小数部的位数小于第二阈值,则处理进入步骤S340,在步骤S340中增加更新后的定点数格式的小数部的位数,从而增加m的值。接着,处理进入步骤S310继续后续处理,直至数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值。
本领域技术人员可以综合考虑诸如硬件资源、处理时间、能耗等因素来预先设定上述第二阈值。
另外,在训练步骤S240中,在前向传播和反向传播过程中会涉及到对小数部位数不同的数据进行运算。此时,在进行运算前,需要对数据进行数据精度转换。具体地,在前向传播过程中,在将上一层i中的输出数据Douti输入到下一层i+1进行运算之前,需要根据以下等式(1)对下一层i+1中的数据Di+1进行数据精度转换,以匹配输出数据Douti的数据精度。
Di+1 *=Di+1×K……(1)
其中,Di+1 *是数据精度转换后的数据;以及K是数据精度转换因子,其根据输出数据Douti的小数部的位数与下一层i+1中的数据Di+1的小数部的位数之差来确定。通过前向传播中的数据精度转换,数据之间的精度已经相互匹配,从而在反向传播中无需再执行数据精度转换。定点数据精度转换的操作已为本领域技术人员所熟知,在此不再详细描述。
此外,定点位数削减后的深度神经网络在训练过程中可能出现不收敛或者损失衰减或消失。在训练步骤S240期间,在利用梯度下降法来求解在前向传播中计算的损失项极值的情形下,该网络不收敛或损失衰减或消失由下述引起:在训练步骤中产生的一些较小梯度值超出了m位定点数格式所能表达的最小范围,而被简单地处理为0,进而影响了权重和偏差的更新值。图4示出了在未执行定点位数削减(均为n位定点数)的情形下在深度神经网络的训练期间从所有层采集的梯度值占比的示例的直方图。在图4中,x轴表示对数形式的梯度值并且被分割成多个梯度值区间,以及y轴表示落在各个梯度值区间的梯度值的数目与所采集的所有梯度值的数目之比,也称为梯度值占比,例如,约2%的梯度值落在[2-34,2-32]的范围中,以及约64%的梯度值为零(如图中最左方的单独矩形块所示)。图中各个矩形块所表示的梯度值占比之和为1,换言之各个矩形块所表示的y轴上的值的总和为1。从图中可以看出,m位定点数格式的可表达范围中的大部分没有梯度值,而且大部分梯度值落在m位定点数格式的最小可表达值以下,从而该大部分梯度值在以m位定点数格式表示时均变为零。
放大梯度值会使梯度值占据更多的m位定点数格式的可表达范围从而保留下在未放大时因在最小可表达值下方而变为零的梯度值。通过将削减后的深度神经网络的梯度值放大一定倍数可以使削减后的深度神经网络的处理精度大致匹配未削减的深度神经网络的处理精度。
一种将梯度值放大到m位定点数格式的可表达范围的方法是:首先,按照预定的放大因子来放大损失项,如以下等式(2)所示,从而通过链式法则的反向传播来确保所有的梯度值被放大相同的量。
L*(ω)=L(ω)×S……(2),
其中,L(ω)为深度神经网络的损失项,S为放大因子,以及L*(ω)为放大后的损失项。
然后,在权重和偏差更新之前如以下等式(3)所示来缩小梯度值,以保持权重和偏差更新幅度如在n位定点数训练中一样。恰好在反向传播经过之后但在梯度裁剪之前或任何其他梯度相关计算之前来执行该缩小,从而确保不需要调节超参数(如,梯度裁剪阈值、权重衰减等)。
G*(ω)=G(ω)/S……(3)
其中,G(ω)为反向传播中计算的梯度值,S为放大因子,以及G*(ω)为缩小后的梯度值。
放大因子S可以被设置为恒定的放大因子。可以根据经验设置恒定的放大因子,或者如果存在关于梯度值的统计,则可以将放大因子设置为使其与最大绝对梯度值的乘积在m位定点数格式可表达的最大值以下。设置较大放大因子没有负面影响,只要所设置的放大因子在反向传播中不引起溢出就行。溢出将导致梯度值为无穷大或非数值,这将在更新之后不可避免地损害权重。可以通过例如在梯度值被缩小时检查所计算的梯度值来有效地检测溢出。并且,可以在检测到溢出时跳过权重和偏差更新,并且简单地继续下一次迭代。此外,放大因子S的设置不限于上述方式,本领域技术人员可以根据实际应用来设置合适的放大因子。
以上示例性地说明书了在利用梯度下降法求解损失项极值时削减后的深度神经网络不收敛或者损失项衰减或消失的成因及其弥补措施,但方法不限于此,本领域技术人员可以根据损失项极值求解的不同方法而采用不同的措施来避免削减后的深度神经网络不收敛或者损失项衰减或消失。
继续参考图2,根据本发明优选实施方式的深度学习加速的方法200还包括初步训练步骤S220。在该步骤S220中,对初始化后的深度神经网络进行初步训练,达预定轮数。在该优选实施方式中,在步骤S230中,针对初步训练后的深度神经网络来执行削减。
通过执行初步训练步骤S220,能够使权重和偏差被随机设定的深度神经网络在一定程度上收敛,从而随后在该适当收敛的深度神经网络上执行削减步骤S230和训练步骤S240时,能够在一定程度上避免深度神经网络发散并且能够加快深度神经网络收敛。
在初步训练过程中,当数据溢出时,可以根据数据的大小来自动调整数据的定点数格式。自动调整数据的定点数格式的处理参见以上关于图3的描述,在此不再赘述。
另外,在初步训练过程中,在前向传播和反向传播过程中会涉及到对小数部位数不同的数据进行运算。此时,在进行运算前,需要对数据进行数据精度转换。具体地,在前向传播过程中,在将上一层i中的输出数据Douti输入到下一层i+1进行运算之前,需要根据上述等式(1)对下一层i+1中的数据Di+1进行数据精度转换,以匹配输出数据Douti的数据精度。通过前向传播中的数据精度转换,数据之间的精度已经相互匹配,从而在反向传播中无需再执行精度转换。定点数据精度转换的操作已为本领域技术人员所熟知,在此不再详细描述。
以上参照图1至图4详细描述了根据本发明实施方式的对深度神经网络的训练进行加速的方法。根据上述方法训练的深度神经网络同样能够在推理过程中加速处理,节约硬件资源和能耗,并减少处理时间。下面,参照图5来描述深度学习加速的设备的结构。
图5示出了根据本发明实施方式的深度学习加速的设备的结构框图。如图5所示,深度学习加速设备500包括:初始化装置510,其配置成将深度神经网络的权重和偏差随机地初始化为n位定点数;削减装置530,其配置成将深度神经网络中计算量大于预定第一阈值的层中的数据削减为m位定点数,其中m<n,且保持其余层中的数据为n位定点数;以及训练装置540,其配置成对削减后的深度神经网络进行训练,直至收敛。
另外,初始化装置还被配置成,根据数据所归属的所述深度神经网络中的参数的类型来为数据设定相应的定点数格式。其中,参数的数值越大,则定点数格式中的小数部的位数越少。
另外,训练装置540还被配置成,在小数部的位数不同的数据之间进行运算之前,根据数据的小数部的位数之差来对数据执行数据精度转换。
优选地,根据本发明实施方式的深度学习加速设备500还包括初步训练装置520,其配置成对初始化后的深度神经网络进行初步训练,达预定轮数,其中,削减装置530针对初步训练后的深度神经网络来执行削减。
另外,初步训练装置520和训练装置540还被配置成:在数据溢出时,根据该数据的大小来自动调整该数据的定点数格式。具体地,当数据溢出时,初步训练装置520和训练装置540被操作为:
i)判定该数据是否超出当前的定点数格式所能表达的范围;
ii)如果判定出该数据超出当前的定点数格式所能表达的范围,则通过使当前的定点数格式的整数部的位数增加1且小数部的位数减小1来更新定点数格式;
iii)重复执行上述操作i)和ii),直至该数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示该数据,或者直至更新后的定点数格式的小数部的位数小于预定第二阈值;
iv)当更新后的定点数格式的小数部的位数小于预定第二阈值时,增加小数部的位数,从而增加m的值;以及
v)重复执行上述操作i)至iv),直至该数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示该数据。
以上参考图5简单地描述了深度学习加速设备的构造和操作。关于该设备及其内部的部件的详细操作可以参见以上关于深度学习加速的方法的描述。在此,不再详细描述。
另外,这里尚需指出的是,上述系统中各个组成部件可以通过软件、固件、硬件或其组合的方式进行配置。配置可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。在通过软件或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机(例如图6所示的通用计算机600)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。
图6示出了可用于实施根据本发明实施例的方法和系统的计算机的示意性框图。
在图6中,中央处理单元(CPU)601根据只读存储器(ROM)602中存储的程序或从存储部分608加载到随机存取存储器(RAM)603的程序执行各种处理。在RAM 603中,还根据需要存储当CPU 601执行各种处理等时所需的数据。CPU 601、ROM 602和RAM 603经由总线604彼此连接。输入/输出接口605也连接到总线604。
下述部件连接到输入/输出接口605:输入部分606(包括键盘、鼠标等等)、输出部分607(包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分608(包括硬盘等)、通信部分609(包括网络接口卡比如LAN卡、调制解调器等)。通信部分609经由网络比如因特网执行通信处理。根据需要,驱动器610也可连接到输入/输出接口605。可拆卸介质611比如磁盘、光盘、磁光盘、半导体存储器等等可以根据需要被安装在驱动器610上,使得从中读出的计算机程序根据需要被安装到存储部分608中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质611安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图6所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质611。可拆卸介质611的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 602、存储部分608中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
本发明还提出一种存储有机器可读取的指令代码的程序产品。所述指令代码由机器读取并执行时,可执行上述根据本发明实施方式的方法。
相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本发明的范围内。所述存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。
应当注意,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的次序顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。
以上对本发明各实施方式的描述是为了更好地理解本发明,其仅仅是示例性的,而非旨在对本发明进行限制。应注意,在以上描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。本领域技术人员可以理解,在不脱离本发明的发明构思的情况下,针对以上所描述的实施方式进行的各种变化和修改,均属于本发明的范围内。
综上,在根据本发明的实施例中,本发明提供了如下技术方案。
方案1.一种深度学习加速的方法,包括:
将深度神经网络的权重和偏差随机地初始化为n位定点数;
将所述深度神经网络中计算量大于预定第一阈值的层中的数据削减为m位定点数,其中m和n为整数且m<n,且保持其余层中的数据为n位定点数;以及
对削减后的深度神经网络进行训练,直至收敛。
方案2.根据方案1所述的方法,还包括:对初始化后的深度神经网络进行初步训练,达预定轮数,
其中,所述削减针对初步训练后的深度神经网络来执行。
方案3.根据方案2所述的方法,在所述初步训练和所述训练中,当数据溢出时,根据所述数据的大小来自动调整所述数据的定点数格式。
方案4.根据方案3所述的方法,其中,当数据溢出时自动调整所述数据的定点数格式包括:
i)判定所述数据是否超出当前的定点数格式所能表达的范围;
ii)如果判定出所述数据超出当前的定点数格式所能表达的范围,则通过使当前的定点数格式的整数部的位数增加1且小数部的位数减小1来更新定点数格式;
iii)重复执行上述操作i)和ii),直至所述数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示所述数据,或者直至更新后的定点数格式的小数部的位数小于预定第二阈值;
iv)当更新后的定点数格式的小数部的位数小于预定第二阈值时,增加小数部的位数,从而增加m的值;以及
v)重复执行上述操作i)至iv),直至所述数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示所述数据。
方案5.根据方案1至4中任一项所述的方法,其中,在所述训练期间,在反向传播中利用梯度下降法来求解在前向传播中计算的损失项的极值。
方案6.根据方案5所述的方法,其中,在反向传播中,首先按照预定比例放大所述损失项,然后在更新权重和偏差之前,按照所述预定比例缩小梯度。
方案7.根据方案1至4中任一项所述的方法,其中,在所述训练中,在其小数部的位数不同的数据之间进行运算之前,根据数据的小数部的位数之差来对数据执行数据精度转换。
方案8.根据方案1至4中任一项所述的方法,其中,在所述初始化中,根据所述数据所归属的所述深度神经网络中的参数的类型来为所述数据设定相应的定点数格式。
方案9.根据方案8所述的方法,其中,参数的值越大,则定点数格式中的小数部的位数越少。
方案10.一种深度学习加速的设备,包括:
初始化装置,被配置成将深度神经网络的权重和偏差随机地初始化为n位定点数;
削减装置,被配置成将所述深度神经网络中计算量大于预定第一阈值的层中的数据削减为m位定点数,其中m和n为整数且m<n,且保持其余层中的数据为n位定点数;以及
训练装置,被配置成对削减后的深度神经网络进行训练,直至收敛。
方案11.根据方案10所述的设备,还包括初步训练装置,其被配置成对初始化后的深度神经网络进行初步训练,达预定轮数,
其中,所述削减装置针对初步训练后的深度神经网络来进行削减。
方案12.根据方案11所述的设备,所述初步训练装置和所述训练装置还被配置成:当数据溢出时,根据所述数据的大小来自动调整所述数据的定点数格式。
方案13.根据方案12所述的设备,其中,当数据溢出时,自动调整所述数据的定点数格式包括:
i)判定所述数据是否超出当前的定点数格式所能表达的范围;
ii)如果判定出所述数据超出当前的定点数格式所能表达的范围,则通过使当前的定点数格式的整数部的位数增加1且小数部的位数减小1来更新定点数格式;
iii)重复执行上述操作i)和ii),直至所述数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示所述数据,或者直至更新后的定点数格式的小数部的位数小于预定第二阈值;
iv)当更新后的定点数格式的小数部的位数小于预定第二阈值时,增加小数部的位数,从而增加m的值;以及
v)重复执行上述操作i)至iv),直至所述数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示所述数据。
方案14.根据方案10-13中任一项所述的设备,其中,所述训练装置还被配置成:在反向传播中利用梯度下降法来求解在前向传播中计算的损失项的极值。
方案15.根据方案14所述的设备,其中,所述训练装置还被配置成:在反向传播中,首先按照预定比例放大所述损失项,然后在更新权重和偏差之前,按照所述预定比例缩小梯度。
方案16.根据方案10至13中任一项所述的设备,其中,所述训练装置还被配置成:在其小数部的位数不同的数据之间执行运算之前,根据数据的小数部的位数之差来对数据执行数据精度转换。
方案17.根据方案10至13中任一项所述的设备,其中,所述初始化装置还被配置成:根据所述数据所归属的所述深度神经网络中的参数的类型来为所述数据设定相应的定点数格式。
方案18.根据方案17所述的设备,其中,参数的值越大,则定点数格式中的小数部的位数越少。
方案19.一种深度神经网络,包括:
输入层,接收要由所述深度神经网络处理的数据;
输出层,输出由所述深度神经网络处理后的结果;以及
多个隐藏层,耦接在所述输入层与所述输出层之间并且根据所述深度神经网络所要实现的功能来设计,
其中,所述深度神经网络根据方案1至8中任一项所述的方法来进行训练。

Claims (10)

1.一种深度学习加速的方法,包括:
将深度神经网络的权重和偏差随机地初始化为n位定点数;
将所述深度神经网络中计算量大于预定第一阈值的层中的数据削减为m位定点数,其中m和n为整数且m<n,且保持其余层中的数据为n位定点数;以及
对削减后的深度神经网络进行训练,直至收敛。
2.根据权利要求1所述的方法,还包括:对初始化后的深度神经网络进行初步训练,达预定轮数,
其中,所述削减针对初步训练后的深度神经网络来执行。
3.根据权利要求2所述的方法,在所述初步训练和所述训练中,当数据溢出时,根据所述数据的大小来自动调整所述数据的定点数格式。
4.根据权利要求3所述的方法,其中,当数据溢出时自动调整所述数据的定点数格式包括:
i)判定所述数据是否超出当前的定点数格式所能表达的范围;
ii)如果判定出所述数据超出当前的定点数格式所能表达的范围,则通过使当前的定点数格式的整数部的位数增加1且小数部的位数减小1来更新定点数格式;
iii)重复执行上述操作i)和ii),直至所述数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示所述数据,或者直至更新后的定点数格式的小数部的位数小于预定第二阈值;
iv)当更新后的定点数格式的小数部的位数小于预定第二阈值时,增加小数部的位数,从而增加m的值;以及
v)重复执行上述操作i)至iv),直至所述数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示所述数据。
5.根据权利要求1至4中任一项所述的方法,其中,在所述训练期间,在反向传播中利用梯度下降法来求解在前向传播中计算的损失项的极值。
6.根据权利要求5所述的方法,其中,在反向传播中,首先按照预定比例放大所述损失项,然后在更新权重和偏差之前,按照所述预定比例缩小梯度。
7.根据权利要求1至4中任一项所述的方法,其中,在所述训练中,在其小数部的位数不同的数据之间执行运算之前,根据数据的小数部的位数之差来对数据执行数据精度转换。
8.根据权利要求1至4中任一项所述的方法,其中,在所述初始化中,根据所述数据所归属的所述深度神经网络中的参数的类型来为所述数据设定相应的定点数格式。
9.一种深度学习加速的设备,包括:
初始化装置,被配置成将深度神经网络的权重和偏差随机地初始化为n位定点数;
削减装置,被配置成将所述深度神经网络中计算量大于预定第一阈值的层中的数据削减为m位定点数,其中m和n为整数m<n,且保持其余层中的数据为n位定点数;以及
训练装置,被配置成对削减后的深度神经网络进行训练,直至收敛。
10.一种深度神经网络,包括:
输入层,接收要由所述深度神经网络处理的数据;
输出层,输出由所述深度神经网络处理后的结果;以及
多个隐藏层,耦接在所述输入层与所述输出层之间并且根据所述深度神经网络所要实现的功能来设计,
其中,所述深度神经网络根据权利要求1至8中任一项所述的方法来进行训练。
CN201810502897.6A 2018-05-23 2018-05-23 深度学习加速的方法和设备及深度神经网络 Pending CN110533175A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201810502897.6A CN110533175A (zh) 2018-05-23 2018-05-23 深度学习加速的方法和设备及深度神经网络
US16/251,471 US11586926B2 (en) 2018-05-23 2019-01-18 Method and apparatus for accelerating deep learning and deep neural network
JP2019020886A JP7163809B2 (ja) 2018-05-23 2019-02-07 深層学習加速の方法および機器ならびに深層神経ネットワーク

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810502897.6A CN110533175A (zh) 2018-05-23 2018-05-23 深度学习加速的方法和设备及深度神经网络

Publications (1)

Publication Number Publication Date
CN110533175A true CN110533175A (zh) 2019-12-03

Family

ID=68614674

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810502897.6A Pending CN110533175A (zh) 2018-05-23 2018-05-23 深度学习加速的方法和设备及深度神经网络

Country Status (3)

Country Link
US (1) US11586926B2 (zh)
JP (1) JP7163809B2 (zh)
CN (1) CN110533175A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113487036A (zh) * 2021-06-24 2021-10-08 浙江大学 机器学习模型的分布式训练方法及装置、电子设备、介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7045947B2 (ja) * 2018-07-05 2022-04-01 株式会社日立製作所 ニューラルネットワークの学習装置および学習方法
JP7370158B2 (ja) * 2019-04-03 2023-10-27 株式会社Preferred Networks 情報処理装置および情報処理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106575379B (zh) * 2014-09-09 2019-07-23 英特尔公司 用于神经网络的改进的定点整型实现方式
GB201607713D0 (en) * 2016-05-03 2016-06-15 Imagination Tech Ltd Convolutional neural network
CN107526709A (zh) * 2016-06-15 2017-12-29 辉达公司 使用低精度格式的张量处理
WO2019028210A1 (en) * 2017-08-02 2019-02-07 Facet Labs, Llc INTELLIGENT DISTRIBUTED SYSTEMS FOR NETWORK DATA MANAGEMENT
US20190050710A1 (en) * 2017-08-14 2019-02-14 Midea Group Co., Ltd. Adaptive bit-width reduction for neural networks
JP6540841B1 (ja) * 2018-02-27 2019-07-10 富士通株式会社 演算処理装置、情報処理装置、情報処理方法、およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113487036A (zh) * 2021-06-24 2021-10-08 浙江大学 机器学习模型的分布式训练方法及装置、电子设备、介质
CN113487036B (zh) * 2021-06-24 2022-06-17 浙江大学 机器学习模型的分布式训练方法及装置、电子设备、介质

Also Published As

Publication number Publication date
JP2019204487A (ja) 2019-11-28
US20190362236A1 (en) 2019-11-28
JP7163809B2 (ja) 2022-11-01
US11586926B2 (en) 2023-02-21

Similar Documents

Publication Publication Date Title
CN110533175A (zh) 深度学习加速的方法和设备及深度神经网络
WO2009139161A1 (ja) 画像処理装置、画像処理方法、処理装置、処理方法およびプログラム
US11640500B2 (en) Platform interpretation of user input converted into standardized input
CN108256632A (zh) 信息处理方法和装置
Dauwels Numerical computation of the capacity of continuous memoryless channels
EP3798929A1 (en) Information processing apparatus, information processing method, and information processing program
CN115099928A (zh) 流失客户识别方法及装置
CN110354501B (zh) 行为预测方法、装置及电子设备
EP4177794A1 (en) Operation program, operation method, and calculator
CN110276448B (zh) 一种模型压缩方法及装置
CN109858127B (zh) 基于递归时序深度置信网络的蓝藻水华预测方法
JP3482039B2 (ja) ディジタルフィルタの係数決定方法
EP3792836A1 (en) Information processing apparatus, method of processing information, and information processing program
CN117035439A (zh) 基于非均数据和智能优化算法的井漏工况预测方法及系统
CN110533156B (zh) 提高卷积神经网络的处理速度的方法和设备
US20230394322A1 (en) Server apparatus
CN111582680B (zh) 基于vr游戏的用户情感可视化评测方法及存储介质
Munz 2009-Munz-EtAl-When Zombies Attack-Mathematical modelling of an Outbreak of Zombie Infection
CN115496178A (zh) 一种知识蒸馏方法、装置及电子设备
CN113420226A (zh) 卡牌的推荐方法、装置、电子设备及计算机可读介质
SAROCCHI DECONVOLUTION OF MIXTURES OF LOGNORMAL COMPONENTS INSIDE PARTICLE SIZE DISTRIBUTIONS
CN115624759A (zh) 一种游戏行为规划方法、装置、设备及存储介质
CN115081314A (zh) 一种气候预测模型的校正方法及装置
CN115578185A (zh) 银行边缘计算系统的风险控制方法及装置
CN115641282A (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