[0047] 图5示出了根据本发明实施方式的深度学习加速的设备的结构框图。如图5所示,深度学习加速设备500包括:初始化装置510,其配置成将深度神经网络的权重和偏差随机地初始化为n位定点数;削减装置530,其配置成将深度神经网络中计算量大于预定第一阈值的层中的数据削减为m位定点数,其中m
[0048] 另外,初始化装置还被配置成,根据数据所归属的所述深度神经网络中的参数的类型来为数据设定相应的定点数格式。其中,参数的数值越大,则定点数格式中的小数部的位数越少。
[0049] 另外,训练装置540还被配置成,在小数部的位数不同的数据之间进行运算之前,根据数据的小数部的位数之差来对数据执行数据精度转换。
[0050] 优选地,根据本发明实施方式的深度学习加速设备500还包括初步训练装置520,其配置成对初始化后的深度神经网络进行初步训练,达预定轮数,其中,削减装置530针对初步训练后的深度神经网络来执行削减。
[0051] 另外,初步训练装置520和训练装置540还被配置成:在数据溢出时,根据该数据的大小来自动调整该数据的定点数格式。具体地,当数据溢出时,初步训练装置520和训练装置540被操作为:
[0052] i)判定该数据是否超出当前的定点数格式所能表达的范围;
[0053] ii)如果判定出该数据超出当前的定点数格式所能表达的范围,则通过使当前的定点数格式的整数部的位数增加1且小数部的位数减小1来更新定点数格式;
[0054] iii)重复执行上述操作i)和ii),直至该数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示该数据,或者直至更新后的定点数格式的小数部的位数小于预定第二阈值;
[0055] iv)当更新后的定点数格式的小数部的位数小于预定第二阈值时,增加小数部的位数,从而增加m的值;以及
[0056] v)重复执行上述操作i)至iv),直至该数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示该数据。
[0057] 以上参考图5简单地描述了深度学习加速设备的构造和操作。关于该设备及其内部的部件的详细操作可以参见以上关于深度学习加速的方法的描述。在此,不再详细描述。
[0058] 另外,这里尚需指出的是,上述系统中各个组成部件可以通过软件、固件、硬件或其组合的方式进行配置。配置可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。在通过软件或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机(例如图6所示的通用计算机600)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。
[0059] 图6示出了可用于实施根据本发明实施例的方法和系统的计算机的示意性框图。
[0060] 在图6中,中央处理单元(CPU)601根据只读存储器(ROM)602中存储的程序或从存储部分608加载到随机存取存储器(RAM)603的程序执行各种处理。在RAM 603中,还根据需要存储当CPU 601执行各种处理等时所需的数据。CPU 601、ROM 602和RAM 603经由总线604彼此连接。输入/输出接口605也连接到总线604。
[0061] 下述部件连接到输入/输出接口605:输入部分606(包括键盘、鼠标等等)、输出部分607(包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分608(包括硬盘等)、通信部分609(包括网络接口卡比如LAN卡、调制解调器等)。通信部分609经由网络比如因特网执行通信处理。根据需要,驱动器610也可连接到输入/输出接口605。
可拆卸介质611比如磁盘、光盘、磁光盘、半导体存储器等等可以根据需要被安装在驱动器
610上,使得从中读出的计算机程序根据需要被安装到存储部分608中。
[0062] 在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质611安装构成软件的程序。
[0063] 本领域的技术人员应当理解,这种存储介质不局限于图6所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质611。可拆卸介质611的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 602、存储部分608中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
[0064] 本发明还提出一种存储有机器可读取的指令代码的程序产品。所述指令代码由机器读取并执行时,可执行上述根据本发明实施方式的方法。
[0065] 相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本发明的范围内。所述存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。
[0066] 应当注意,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的次序顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。
[0067] 以上对本发明各实施方式的描述是为了更好地理解本发明,其仅仅是示例性的,而非旨在对本发明进行限制。应注意,在以上描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。本领域技术人员可以理解,在不脱离本发明的发明构思的情况下,针对以上所描述的实施方式进行的各种变化和修改,均属于本发明的范围内。
[0068] 综上,在根据本发明的实施例中,本发明提供了如下技术方案。
[0069] 方案1.一种深度学习加速的方法,包括:
[0070] 将深度神经网络的权重和偏差随机地初始化为n位定点数;
[0071] 将所述深度神经网络中计算量大于预定第一阈值的层中的数据削减为m位定点数,其中m和n为整数且m
[0072] 对削减后的深度神经网络进行训练,直至收敛。
[0073] 方案2.根据方案1所述的方法,还包括:对初始化后的深度神经网络进行初步训练,达预定轮数,
[0074] 其中,所述削减针对初步训练后的深度神经网络来执行。
[0075] 方案3.根据方案2所述的方法,在所述初步训练和所述训练中,当数据溢出时,根据所述数据的大小来自动调整所述数据的定点数格式。
[0076] 方案4.根据方案3所述的方法,其中,当数据溢出时自动调整所述数据的定点数格式包括:
[0077] i)判定所述数据是否超出当前的定点数格式所能表达的范围;
[0078] ii)如果判定出所述数据超出当前的定点数格式所能表达的范围,则通过使当前的定点数格式的整数部的位数增加1且小数部的位数减小1来更新定点数格式;
[0079] iii)重复执行上述操作i)和ii),直至所述数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示所述数据,或者直至更新后的定点数格式的小数部的位数小于预定第二阈值;
[0080] iv)当更新后的定点数格式的小数部的位数小于预定第二阈值时,增加小数部的位数,从而增加m的值;以及
[0081] v)重复执行上述操作i)至iv),直至所述数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示所述数据。
[0082] 方案5.根据方案1至4中任一项所述的方法,其中,在所述训练期间,在反向传播中利用梯度下降法来求解在前向传播中计算的损失项的极值。
[0083] 方案6.根据方案5所述的方法,其中,在反向传播中,首先按照预定比例放大所述损失项,然后在更新权重和偏差之前,按照所述预定比例缩小梯度。
[0084] 方案7.根据方案1至4中任一项所述的方法,其中,在所述训练中,在其小数部的位数不同的数据之间进行运算之前,根据数据的小数部的位数之差来对数据执行数据精度转换。
[0085] 方案8.根据方案1至4中任一项所述的方法,其中,在所述初始化中,根据所述数据所归属的所述深度神经网络中的参数的类型来为所述数据设定相应的定点数格式。
[0086] 方案9.根据方案8所述的方法,其中,参数的值越大,则定点数格式中的小数部的位数越少。
[0087] 方案10.一种深度学习加速的设备,包括:
[0088] 初始化装置,被配置成将深度神经网络的权重和偏差随机地初始化为n位定点数;
[0089] 削减装置,被配置成将所述深度神经网络中计算量大于预定第一阈值的层中的数据削减为m位定点数,其中m和n为整数且m
[0091] 方案11.根据方案10所述的设备,还包括初步训练装置,其被配置成对初始化后的深度神经网络进行初步训练,达预定轮数,
[0092] 其中,所述削减装置针对初步训练后的深度神经网络来进行削减。
[0093] 方案12.根据方案11所述的设备,所述初步训练装置和所述训练装置还被配置成:当数据溢出时,根据所述数据的大小来自动调整所述数据的定点数格式。
[0094] 方案13.根据方案12所述的设备,其中,当数据溢出时,自动调整所述数据的定点数格式包括:
[0095] i)判定所述数据是否超出当前的定点数格式所能表达的范围;
[0096] ii)如果判定出所述数据超出当前的定点数格式所能表达的范围,则通过使当前的定点数格式的整数部的位数增加1且小数部的位数减小1来更新定点数格式;
[0097] iii)重复执行上述操作i)和ii),直至所述数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示所述数据,或者直至更新后的定点数格式的小数部的位数小于预定第二阈值;
[0098] iv)当更新后的定点数格式的小数部的位数小于预定第二阈值时,增加小数部的位数,从而增加m的值;以及
[0099] v)重复执行上述操作i)至iv),直至所述数据未超出更新后的定点数格式所能表达的范围且更新后的定点数格式的小数部的位数大于等于预定第二阈值,此时用更新后的定点数格式表示所述数据。
[0100] 方案14.根据方案10-13中任一项所述的设备,其中,所述训练装置还被配置成:在反向传播中利用梯度下降法来求解在前向传播中计算的损失项的极值。
[0101] 方案15.根据方案14所述的设备,其中,所述训练装置还被配置成:在反向传播中,首先按照预定比例放大所述损失项,然后在更新权重和偏差之前,按照所述预定比例缩小梯度。
[0102] 方案16.根据方案10至13中任一项所述的设备,其中,所述训练装置还被配置成:在其小数部的位数不同的数据之间执行运算之前,根据数据的小数部的位数之差来对数据执行数据精度转换。
[0103] 方案17.根据方案10至13中任一项所述的设备,其中,所述初始化装置还被配置成:根据所述数据所归属的所述深度神经网络中的参数的类型来为所述数据设定相应的定点数格式。
[0104] 方案18.根据方案17所述的设备,其中,参数的值越大,则定点数格式中的小数部的位数越少。
[0105] 方案19.一种深度神经网络,包括:
[0106] 输入层,接收要由所述深度神经网络处理的数据;
[0107] 输出层,输出由所述深度神经网络处理后的结果;以及
[0108] 多个隐藏层,耦接在所述输入层与所述输出层之间并且根据所述深度神经网络所要实现的功能来设计,
[0109] 其中,所述深度神经网络根据方案1至8中任一项所述的方法来进行训练。