CN110503182A - 深度神经网络中的网络层运算方法及装置 - Google Patents

深度神经网络中的网络层运算方法及装置 Download PDF

Info

Publication number
CN110503182A
CN110503182A CN201810479974.0A CN201810479974A CN110503182A CN 110503182 A CN110503182 A CN 110503182A CN 201810479974 A CN201810479974 A CN 201810479974A CN 110503182 A CN110503182 A CN 110503182A
Authority
CN
China
Prior art keywords
matrix
network layer
linear combination
obtains
parameter
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
CN201810479974.0A
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201810479974.0A priority Critical patent/CN110503182A/zh
Publication of CN110503182A publication Critical patent/CN110503182A/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

本发明实施例提供了一种深度神经网络中的网络层运算方法及装置,其中,深度神经网络中的网络层运算方法包括:获取深度神经网络中网络层的参数矩阵;对参数矩阵中各权值进行归一化操作,得到参数归一化矩阵;根据第一预设基矩阵,将参数归一化矩阵中各元素表示为第一预设基矩阵中元素的线性组合,得到线性组合矩阵;将网络层的输入量与线性组合矩阵进行运算,得到网络层的输出量。通过本方案,可以在有效降低深度神经网络的存储量的同时,降低计算量。

Description

深度神经网络中的网络层运算方法及装置
技术领域
本发明涉及机器学习技术领域,特别是涉及一种深度神经网络中的网络层运算方法及装置。
背景技术
DNN(Deep Neural Network,深度神经网络)作为机器学习研究中的一个新兴领域,通过模仿人脑的机制来解析数据,是一种通过建立和模拟人脑进行分析学习的智能模型。目前,例如CNN(Convolutional Neural Network,卷积神经网络)、RNN(RecurrentNeural Network,循环神经网络)、LSTM(Long Short Term Memory,长短期记忆网络)等的DNN已在目标检测与分割、行为检测与识别、语音识别等方面得到了很好的应用。但是,由于DNN中一般采用双精度或单精度浮点数据的乘/加操作来实现网络基本单元的运算,参与运算的数据量较大,这导致了DNN存在大计算量、高存储量等问题。
当前的DNN中,多采用定点数量化的方法来降低DNN的计算量和存储量。定点数量化的方法通过将浮点数转换为定点数的方式,在保证准确率的前提下,可以一定程度降低DNN参数层权值的比特数,进而降低DNN的存储量。然而,这种方法压缩比有限,压缩后的定点数仍然具有较大的计算量。
发明内容
本发明实施例的目的在于提供一种深度神经网络中的网络层运算方法及装置,以在有效降低深度神经网络的存储量的同时,降低计算量。具体技术方案如下:
第一方面,本发明实施例提供了一种深度神经网络中的网络层运算方法,所述方法包括:
获取深度神经网络中网络层的参数矩阵;
对所述参数矩阵中各权值进行归一化操作,得到参数归一化矩阵;
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为所述第一预设基矩阵中元素的线性组合,得到线性组合矩阵;
将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
可选的,在所述获取深度神经网络中网络层的参数矩阵之后,所述方法还包括:
统计所述参数矩阵中的各权值,得到所述参数矩阵的权值范围;
基于所述权值范围,提取所述参数矩阵中绝对值最大的第一权值;
所述对所述参数矩阵中各权值进行归一化操作,得到参数归一化矩阵,包括:
将所述参数矩阵中的各权值分别除以所述第一权值,得到参数归一化矩阵;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一权值与运算结果相乘,得到所述网络层的输出量。
可选的,所述对所述参数矩阵中各权值进行归一化操作,得到参数归一化矩阵,包括:
将所述参数矩阵中的各权值分别除以所述第一权值的绝对值,得到参数归一化矩阵;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一权值的绝对值与运算结果相乘,得到所述网络层的输出量。
可选的,所述第一预设基矩阵为移位型基矩阵,所述移位型基矩阵中各元素为2的幂指数;
所述根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为所述第一预设基矩阵中元素的线性组合,得到线性组合矩阵,包括:
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
针对所述网络层的输入量中的第一元素,根据与所述第一元素进行乘法运算的所述线性组合矩阵中第二元素的各幂指数,对所述第一元素分别进行多次移位操作,并对所述多次移位操作后的结果相加,得到所述第一元素与所述第二元素的乘积结果;
根据所述输入量中各元素与所述线性组合矩阵中各元素的乘积结果,通过组合的方式对所述输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
可选的,在所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量之前,所述方法还包括:
获取所述网络层的输入激活量;
对所述输入激活量中各元素数值进行归一化操作,得到激活量归一化矩阵;
根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为所述第二预设基矩阵中元素的线性组合,得到所述网络层的输入量。
可选的,在所述获取所述网络层的输入激活量之后,所述方法还包括:
统计所述输入激活量的各元素数值,得到所述输入激活量的元素数值范围;
基于所述元素数值范围,提取所述输入激活量中绝对值最大的第一元素数值;
所述对所述输入激活量中各元素数值进行归一化操作,得到激活量归一化矩阵,包括:
将所述输入激活量中的各元素数值分别除以所述第一元素数值,得到激活量归一化矩阵;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一元素数值与运算结果相乘,得到所述网络层的输出量。
可选的,所述对所述输入激活量中各元素数值进行归一化操作,得到激活量归一化矩阵,包括:
将所述输入激活量中的各元素数值分别除以所述第一元素数值的绝对值,得到激活量归一化矩阵;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一元素数值的绝对值与运算结果相乘,得到所述网络层的输出量。
可选的,所述第一预设基矩阵及所述第二预设基矩阵均为移位型基矩阵,所述移位型基矩阵中各元素为2的幂指数;
所述根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为所述第一预设基矩阵中元素的线性组合,得到线性组合矩阵,包括:
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵;
所述根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为所述第二预设基矩阵中元素的线性组合,得到所述网络层的输入量,包括:
根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为2的幂指数的线性组合,得到所述网络层的输入量;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
根据所述网络层的输入量中第一元素的各幂指数分别与所述线性组合矩阵中第二元素的各幂指数的和,对所述第一元素进行多次移位操作,并对所述多次移位操作后的结果相加,得到所述第一元素与所述第二元素的乘积结果,所述第二元素为:所述线性组合矩阵中与所述第一元素进行乘法运算的元素;
根据所述输入量中各元素与所述线性组合矩阵中各元素的乘积结果,通过组合的方式对所述输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
第二方面,本发明实施例提供了一种深度神经网络中的网络层运算装置,所述装置包括:
第一获取模块,用于获取深度神经网络中网络层的参数矩阵;
第一归一化模块,用于对所述参数矩阵中各权值进行归一化操作,得到参数归一化矩阵;
第一线性组合模块,用于根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为所述第一预设基矩阵中元素的线性组合,得到线性组合矩阵;
运算模块,用于将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
可选的,所述装置还包括:
第一统计模块,用于统计所述参数矩阵中的各权值,得到所述参数矩阵的权值范围;
第一提取模块,用于基于所述权值范围,提取所述参数矩阵中绝对值最大的第一权值;
所述第一归一化模块,具体用于:
将所述参数矩阵中的各权值分别除以所述第一权值,得到参数归一化矩阵;
所述运算模块,具体用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一权值与运算结果相乘,得到所述网络层的输出量。
可选的,所述第一归一化模块,具体还用于:
将所述参数矩阵中的各权值分别除以所述第一权值的绝对值,得到参数归一化矩阵;
所述运算模块,具体还用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一权值的绝对值与运算结果相乘,得到所述网络层的输出量。
可选的,所述第一预设基矩阵为移位型基矩阵,所述移位型基矩阵中各元素为2的幂指数;
所述第一线性组合模块,具体用于:
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵;
所述运算模块,具体用于:
针对所述网络层的输入量中的第一元素,根据与所述第一元素进行乘法运算的所述线性组合矩阵中第二元素的各幂指数,对所述第一元素分别进行多次移位操作,并对所述多次移位操作后的结果相加,得到所述第一元素与所述第二元素的乘积结果;
根据所述输入量中各元素与所述线性组合矩阵中各元素的乘积结果,通过组合的方式对所述输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
可选的,所述装置还包括:
第二获取模块,用于获取所述网络层的输入激活量;
第二归一化模块,用于对所述输入激活量中各元素数值进行归一化操作,得到激活量归一化矩阵;
第二线性组合模块,用于根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为所述第二预设基矩阵中元素的线性组合,得到所述网络层的输入量。
可选的,所述装置还包括:
第二统计模块,用于统计所述输入激活量的各元素数值,得到所述输入激活量的元素数值范围;
第二提取模块,用于基于所述元素数值范围,提取所述输入激活量中绝对值最大的第一元素数值;
所述第二归一化模块,具体用于:
将所述输入激活量中的各元素数值分别除以所述第一元素数值,得到激活量归一化矩阵;
所述运算模块,具体用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一元素数值与运算结果相乘,得到所述网络层的输出量。
可选的,所述第二归一化模块,具体还用于:
将所述输入激活量中的各元素数值分别除以所述第一元素数值的绝对值,得到激活量归一化矩阵;
所述运算模块,具体还用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一元素数值的绝对值与运算结果相乘,得到所述网络层的输出量。
可选的,所述第一预设基矩阵及所述第二预设基矩阵均为移位型基矩阵,所述移位型基矩阵中各元素为2的幂指数;
所述第一线性组合模块,具体用于:
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵;
所述第二线性组合模块,具体用于:
根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为2的幂指数的线性组合,得到所述网络层的输入量;
所述运算模块,具体用于:
根据所述网络层的输入量中第一元素的各幂指数分别与所述线性组合矩阵中第二元素的各幂指数的和,对所述第一元素进行多次移位操作,并对所述多次移位操作后的结果相加,得到所述第一元素与所述第二元素的乘积结果,所述第二元素为:所述线性组合矩阵中与所述第一元素进行乘法运算的元素;
根据所述输入量中各元素与所述线性组合矩阵中各元素的乘积结果,通过组合的方式对所述输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
本发明实施例提供的一种深度神经网络中的网络层运算方法及装置,获取深度神经网络中网络层的参数矩阵,对该参数矩阵中各权值进行归一化操作,得到参数归一化矩阵,根据第一预设基矩阵,将参数归一化矩阵中各元素表示为第一预设基矩阵中元素的线性组合,得到线性组合矩阵,将网络层的输入量与得到的线性组合矩阵进行运算,即可得到网络层的输出量。通过将网络层的参数矩阵表示为第一预设基矩阵中元素的线性组合,使得原本为浮点数的参数矩阵中的权值可以通过定点数线性组合的形式表示,定点数可以有效降低深度神经网络的存储量,并且通过对参数矩阵中各权值的归一化操作,归一化后的权值具有一致性,各权值的运算更易实现,使得深度神经网络的计算量大大降低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例的深度神经网络中的网络层运算方法的流程示意图;
图2为本发明实施例的将乘法操作等价为移位和加法操作的一示意图;
图3为本发明另一实施例的深度神经网络中的网络层运算方法的流程示意图;
图4为本发明实施例的将乘法操作等价为移位和加法操作的另一示意图;
图5为本发明一实施例的深度神经网络中的网络层运算装置的结构示意图;
图6为本发明另一实施例的深度神经网络中的网络层运算装置的结构示意图;
图7为本发明实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了在有效降低深度神经网络的存储量的同时,降低计算量,本发明实施例提供了一种深度神经网络中的网络层运算方法、装置及计算机设备。
下面,首先对本发明实施例所提供的深度神经网络中的网络层运算方法进行介绍。
本发明实施例所提供的一种深度神经网络中的网络层运算方法的执行主体可以为执行智能算法的计算机设备,该计算机设备可以为具有目标检测与分割、行为检测与识别或者语音识别的智能设备,例如远程计算机、远程服务器、智能相机、智能语音设备等等,执行主体中应该至少包括搭载有核心处理芯片的处理器。实现本发明实施例所提供的一种深度神经网络中的网络层运算方法的方式可以为设置于执行主体中的软件、硬件电路和逻辑电路中的至少一种方式。
如图1所示,为本发明实施例所提供的一种深度神经网络中的网络层运算方法,该深度神经网络中的网络层运算方法可以包括如下步骤:
S101,获取深度神经网络中网络层的参数矩阵。
深度神经网络中的网络层用于进行卷积、点乘等网络运算,网络层中包括:激活量和参数层,参数层包括卷积Convolution层及全连接层,各参数层中均包含有进行网络运算的参数矩阵,激活量为两个网络层之间传输的数据流,主要包括:卷积Convolution层的输入/输出,或者内积Inner Product层的输入/输出,或者线性修正Relu层的输入/输出,或者批规范化Batch Normalization层的输入/输出,或者缩放Scale层的输入/输出,或者融合Concat层的输入/输出等。DNN(Deep Neural Network,深度神经网络)为一个较为宽泛的数据处理方法,DNN可以为CNN(Convolutional Neural Network,卷积神经网络)、RNN(Recurrent Neural Network,循环神经网络)、LSTM(Long Short Term Memory,长短期记忆网络)等数据处理方法中的任意一种。参数矩阵中包括:Convolution层中的具体权值或者全连接层中的具体权值。
S102,对参数矩阵中各权值进行归一化操作,得到参数归一化矩阵。
对参数矩阵中各权值进行归一化操作,就是保证权值的一致性。例如,归一化操作可以是将各权值归整至一个固定的数值范围内,以保证在进行运算时,运算的正确率,如果数据差异较大,在进行数据运算时,结果会出现较大的误差。示例性的,可以将各权值归一化至-1至1的数值范围内,相应的,可选的实施例中,在获取深度神经网络中网络层的参数矩阵的步骤之后,还可以包括如下步骤:
第一步,统计参数矩阵中的各权值,得到参数矩阵的权值范围;
第二步,基于该权值范围,提取参数矩阵中绝对值最大的第一权值。
在获取到参数矩阵后,可以对该参数矩阵中的各权值进行统计,能够得到参数矩阵的权值范围,例如参数矩阵中最大的权值为5,最小的权值为-3,则该参数矩阵的权值范围为[-3,5],由于需要将各权值归一化至-1至1的数值范围内,需要以最大的权值作为除数,与各权值进行除法运算,才能保证对各权值进行归一化后的数据介于-1到1之间。因此,可以基于权值范围提取参数矩阵中绝对值最大的权值。
在提取得到参数矩阵中绝对值最大的第一权值后,可以基于该第一权值对参数矩阵进行归一化操作。可选的,对参数矩阵中各权值进行归一化操作,得到参数归一化矩阵的步骤,具体可以通过如下方式实现:
将参数矩阵中的各权值分别除以第一权值,得到参数归一化矩阵;
或者,
将参数矩阵中的各权值分别除以第一权值的绝对值,得到参数归一化矩阵。
在将参数矩阵中各权值归一化至-1至1的范围内的过程中,可以直接将各权值分别除以第一权值,如果第一权值为正数,则归一化后得到的参数归一化矩阵中各元素与对应的各权值的符号相同;如果第一权值为负数,则归一化后得到的参数归一化矩阵中各元素与对应的各权值互为相反数。归一化操作也可以将各权值分别除以第一权值的绝对值,得到的参数归一化矩阵中各元素与对应的各权值的符号相同。在计算得到参数归一化矩阵时,需要对第一权值进行记录,并且对归一化操作的形式作以记录,以便在进行后续运算时,使用第一权值或者第一权值的绝对值对运算结果进行回归,得到准确的运算结果。
S103,根据第一预设基矩阵,将参数归一化矩阵中各元素表示为第一预设基矩阵中元素的线性组合,得到线性组合矩阵。
第一预设基矩阵为预先定义好的基矩阵,该基矩阵可以为各元素为2的幂指数的移位型基矩阵,也可以为对角线矩阵、单位矩阵,还可以为任意元素值所组成的矩阵,基矩阵中每个元素的数值具体根据实际的应用场景进行设定,例如,若设置第一预设基矩阵为参数归一化矩阵中的各元素都可以表示为第一预设基矩阵中元素的线性组合,可以将为浮点值的元素等价映射为比特位宽数据存储表示,进而达到降低深度神经网络的存储量的目的。
在本申请实施例中,为了易于硬件实现,第一预设基矩阵可以为移位型基矩阵,移位型基矩阵中各元素为2的幂指数。
在本申请实施例中,根据第一预设基矩阵,将参数归一化矩阵中各元素表示为第一预设基矩阵中元素的线性组合,得到线性组合矩阵的步骤,具体可以通过如下方式实现:
根据第一预设基矩阵,将参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵。
S104,将网络层的输入量与线性组合矩阵进行运算,得到网络层的输出量。
在得到线性组合矩阵之后,即可以直接将网络层的输入量与线性组合矩阵进行运算,例如进行卷积运算、点乘运算等等,经过运算即可得到网络层的输出量,由于在S102中进行了参数矩阵中权值的归一化操作,在对网络层的输入量与线性组合矩阵进行运算后,可以基于归一化操作的过程,对运算结果进行处理,处理后得到网络层的输出量。
按照上述实施例,归一化操作可以是对参数矩阵中的各权值分别除以绝对值最大的第一权值,则可选的,将网络层的输入量与线性组合矩阵进行运算,得到网络层的输出量的步骤,具体可以通过如下方式实现:
将网络层的输入量与线性组合矩阵进行运算,并将第一权值与运算结果相乘,得到网络层的输出量。
由于在按照对参数矩阵中的各权值分别除以绝对值最大的第一权值对参数矩阵进行归一化操作时,各权值的数据均缩小了,为了保证运算结果的准确,在对网络层的输入量与线性组合矩阵进行运算得到运算结果后,需要将第一权值与该运算结果相乘,即可得到准确的网络层的输出量。
此外,按照上述实施例,归一化操作可以是对参数矩阵中的各权值分别除以绝对值最大的第一权值的绝对值,则可选的,将网络层的输入量与线性组合矩阵进行运算,得到网络层的输出量的步骤,可以通过如下方式实现:
将网络层的输入量与线性组合矩阵进行运算,并将第一权值的绝对值与运算结果相乘,得到网络层的输出量。
由于在按照对参数矩阵中的各权值分别除以绝对值最大的第一权值的绝对值对参数矩阵进行归一化操作时,各权值的数据均缩小了,为了保证运算结果的准确,在对网络层的输入量与线性组合矩阵进行运算得到运算结果后,需要将第一权值的绝对值与该运算结果相乘,即可得到准确的网络层的输出量。
基于S103所述,如果第一预设基矩阵为移位型基矩阵,每个乘法单元可以等价为移位和加法操作,可选的,将网络层的输入量与线性组合矩阵进行运算,得到网络层的输出量的步骤,可以通过如下方式实现:
第一步,针对网络层的输入量中的第一元素,根据与第一元素进行乘法运算的线性组合矩阵中第二元素的各幂指数,对第一元素分别进行多次移位操作,并对多次移位操作后的结果相加,得到第一元素与第二元素的乘积结果;
第二步,根据输入量中各元素与线性组合矩阵中各元素的乘积结果,通过组合的方式对输入量与所述线性组合矩阵进行运算,得到网络层的输出量。
通过将乘法单元等价为移位和加法操作,可以大大减少深度神经网络的计算量,如图2所示,给出了将乘法单元的乘法操作等价为移位和加法操作的示意图,其中,x为第一元素,w为第二元素,y为x与w的乘积结果,k1、k2、…、kN表示线性组合矩阵中第二元素的各幂指数,即输入量中的第一元素每次移位的位数。
应用本实施例,获取深度神经网络中网络层的参数矩阵,对该参数矩阵中各权值进行归一化操作,得到参数归一化矩阵,根据第一预设基矩阵,将参数归一化矩阵中各元素表示为第一预设基矩阵中元素的线性组合,得到线性组合矩阵,将网络层的输入量与得到的线性组合矩阵进行运算,即可得到网络层的输出量。通过将网络层的参数矩阵表示为第一预设基矩阵中元素的线性组合,使得原本为浮点数的参数矩阵中的权值可以通过定点数线性组合的形式表示,定点数可以有效降低深度神经网络的存储量,并且通过对参数矩阵中各权值的归一化操作,归一化后的权值具有一致性,各权值的运算更易实现,使得深度神经网络的计算量大大降低。
基于图1所示实施例,本发明实施例还提供了一种深度神经网络中的网络层运算方法,如图3所示,该深度神经网络中的网络层运算方法包括如下步骤:
S301,获取深度神经网络中网络层的参数矩阵。
S302,对参数矩阵中各权值进行归一化操作,得到参数归一化矩阵。
S303,根据第一预设基矩阵,将参数归一化矩阵中各元素表示为第一预设基矩阵中元素的线性组合,得到线性组合矩阵。
S304,获取网络层的输入激活量。
网络层的输入激活量为输入网络层中参数层的激活量,可以包括卷积Convolution层的输入,或者内积Inner Product层的输入,或者线性修正Relu层的输入,或者批规范化Batch Normalization层的输入,或者缩放Scale层的输入,或者融合Concat层的输入等。
S305,对输入激活量中各元素数值进行归一化操作,得到激活量归一化矩阵。
对输入激活量中各元素数据进行归一化操作,就是保证元素数据的一致性,具体的,归一化操作可以是将各元素数据归整至一个固定的数值范围内,以保证在进行运算时,运算的正确率,如果数据差异较大,在进行数据运算时,结果会出现较大的误差,示例性的,可以将激活量中各元素数据归一化至-1至1的数值范围内,相应的,可选的实施例中,在获取网络层的输入激活量的步骤之后,还可以包括如下步骤:
第一步,统计输入激活量的各元素数值,得到输入激活量的元素数值范围;
第二步,基于元素数值范围,提取输入激活量中绝对值最大的第一元素数值。
在获取到输入激活量后,可以对该输入激活量中的各元素数值进行统计,能够得到输入激活量的元素数值范围,例如输入激活量中最大的元素数值为26,最小的元素数值为-19,则该输入激活量的元素数值范围为[-19,26],由于需要将各元素数值归一化至-1至1的数值范围内,需要以最大的元素数值作为除数,与各元素数值进行除法运算,才能保证对各元素数值进行归一化后的数据介于-1到1之间。因此,可以基于元素数值范围提取输入激活量中绝对值最大的元素数值。
在提取得到输入激活量中绝对值最大的第一元素数值后,可以基于该第一元素数值对输入激活量进行归一化操作。在本申请实施例中,对输入激活量中各元素数值进行归一化操作,得到激活量归一化矩阵的步骤,具体可以通过如下方式实现:
将输入激活量中的各元素数值分别除以第一元素数值,得到激活量归一化矩阵;
或者,
将输入激活量中的各元素数值分别除以第一元素数值的绝对值,得到激活量归一化矩阵。
在将输入激活量中各元素数值归一化至-1至1的范围内的过程中,可以直接将各元素数值分别除以第一元素数值,如果第一元素数值为正数,则归一化后得到的激活量归一化矩阵中各元素与输入激活量中对应的各元素数值的符号相同;如果第一元素数值为负数,则归一化后得到的激活量归一化矩阵中各元素与输入激活量中对应的各元素数值互为相反数。归一化操作也可以将输入激活量中各元素数值分别除以第一元素数值的绝对值,得到的激活量归一化矩阵中各元素与输入激活量中对应的各元素数值的符号相同。在计算得到激活量归一化矩阵时,需要对第一元素数值进行记录,并且对归一化操作的形式作以记录,以便在进行后续运算时,使用第一元素数值或者第一元素数值的绝对值对运算结果进行回归,得到准确的运算结果。
S306,根据第二预设基矩阵,将激活量归一化矩阵中各元素表示为第二预设基矩阵中元素的线性组合,得到网络层的输入量。
第二预设基矩阵为预先定义好的基矩阵,该基矩阵可以为各元素为2的幂指数的移位型基矩阵,也可以为对角线矩阵、单位矩阵等等,基矩阵中每个元素的数值具体根据实际的应用场景进行设定,第二预设基矩阵与第一预设基矩阵可以相同,也可以不相同。若设置第二预设基矩阵为激活量归一化矩阵中的各元素都可以表示为第二预设基矩阵中元素的线性组合,可以将为浮点值的元素等价映射为比特位宽数据存储表示,进一步降低深度神经网络的存储量。
在本申请实施例中,为了易于硬件实现,第一预设基矩阵及第二预设基矩阵均可以为移位型基矩阵,移位型基矩阵中各元素为2的幂指数。
在本申请实施例中,根据第一预设基矩阵,将参数归一化矩阵中各元素表示为第一预设基矩阵中元素的线性组合,得到线性组合矩阵的步骤,可以通过如下方式实现:
根据第一预设基矩阵,将参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵。
在本申请实施例中,根据第二预设基矩阵,将激活量归一化矩阵中各元素表示为第二预设基矩阵中元素的线性组合,得到网络层的输入量的步骤,可以通过如下方式实现:
根据第二预设基矩阵,将激活量归一化矩阵中各元素表示为2的幂指数的线性组合,得到网络层的输入量。
S307,将网络层的输入量与线性组合矩阵进行运算,得到网络层的输出量。
在得到网络层的输入量和线性组合矩阵之后,即可以直接将网络层的输入量与线性组合矩阵进行运算,例如进行卷积运算、点乘运算等等,经过运算即可得到网络层的输出量,由于进行了参数矩阵中权值的归一化操作以及输入激活量中元素数值的归一化操作,在对网络层的输入量与线性组合矩阵进行运算后,可以基于归一化操作的过程,对运算结果进行处理,处理后得到网络层的输出量。
按照上述实施例,对输入激活量进行归一化操作可以是对输入激活量中的各元素数值分别除以绝对值最大的第一元素数值,则可选的,将网络层的输入量与线性组合矩阵进行运算,得到网络层的输出量的步骤,具体可以通过如下方式实现:
将网络层的输入量与线性组合矩阵进行运算,并将第一元素数值与运算结果相乘,得到网络层的输出量。
由于在按照对输入激活量中的各元素数值分别除以绝对值最大的第一元素数值对输入激活量进行归一化操作时,各元素数值的数据均缩小了,为了保证运算结果的准确,在对网络层的输入量与线性组合矩阵进行运算得到运算结果后,需要将第一元素数值与该运算结果相乘,即可得到准确的网络层的输出量。基于上述实施例,如果参数矩阵也进行了相类似的归一化操作,各权值分别除以了绝对值最大的第一权值,则网络层的输出量即可以通过将第一权值、第一元素数值与运算结果相乘得到;或者,如果参数矩阵的归一化操作是将各权值分别除以了绝对值最大的第一权值的绝对值,则网络层的输出量即可以通过将第一权值的绝对值、第一元素数值与运算结果相乘得到。
此外,按照上述实施例,对输入激活量进行归一化操作还可以是对输入激活量中的各元素数值分别除以绝对值最大的第一元素数值的绝对值,则可选的,将网络层的输入量与线性组合矩阵进行运算,得到网络层的输出量的步骤,可以通过如下方式实现:
将网络层的输入量与线性组合矩阵进行运算,并将第一元素数值的绝对值与运算结果相乘,得到网络层的输出量。
由于在按照对输入激活量中的各元素数值分别除以绝对值最大的第一元素数值的绝对值对输入激活量进行归一化操作时,各元素数值的数据均缩小了,为了保证运算结果的准确,在对网络层的输入量与线性组合矩阵进行运算得到运算结果后,需要将第一元素数值的绝对值与该运算结果相乘,即可得到准确的网络层的输出量。基于上述实施例,如果参数矩阵也进行了相类似的归一化操作,各权值分别除以了绝对值最大的第一权值的绝对值,则网络层的输出量即可以通过将第一权值的绝对值、第一元素数值的绝对值与运算结果相乘得到;或者,如果参数矩阵的归一化操作是将各权值分别除以了绝对值最大的第一权值,则网络层的输出量即可以通过将第一权值、第一元素数值与运算结果相乘得到。
如果第一预设基矩阵为移位型基矩阵、第二预设基矩阵也为移位型矩阵,每个乘法单元可以等价为移位和加法操作,可选的,将网络层的输入量与线性组合矩阵进行运算,得到网络层的输出量的步骤,可以通过如下方式实现:
第一步,根据网络层的输入量中第一元素的各幂指数分别与线性组合矩阵中第二元素的各幂指数的和,对第一元素进行多次移位操作,并对多次移位操作后的结果相加,得到第一元素与第二元素的乘积结果,其中,第二元素为:线性组合矩阵中与第一元素进行乘法运算的元素;
第二步,根据输入量中各元素与线性组合矩阵中各元素的乘积结果,通过组合的方式对输入量与线性组合矩阵进行运算,得到网络层的输出量。
通过将输入激活量中各元素表示为2的幂指数的线性组合,可以将输入激活量中各元素表示为移位和相加的形式,再按照参数矩阵中权值的2的幂指数的表示形式,可以将输入激活量中各元素表示为多次移位和相加的形式。通过将输入激活量和浮点权值的乘法运算等价为移位和加法操作,可以大大减少深度神经网络的计算量,如图4所示,给出了将乘法操作等价为移位和加法操作的示意图,其中,x为第一元素,w为第二元素,y为x与w的乘积结果,m1、m2、…、mN表示输入量中第一元素的各幂指数,k1、k2、…、kN表示线性组合矩阵中第二元素的各幂指数,k1+m1、…、kN+mN为输入量中的第一元素每次移位的位数。
应用本实施例,获取深度神经网络中网络层的参数矩阵,对该参数矩阵中各权值进行归一化操作,得到参数归一化矩阵,根据第一预设基矩阵,将参数归一化矩阵中各元素表示为第一预设基矩阵中元素的线性组合,得到线性组合矩阵,将网络层的输入量与得到的线性组合矩阵进行运算,即可得到网络层的输出量。通过将网络层的参数矩阵表示为第一预设基矩阵中元素的线性组合,使得原本为浮点数的参数矩阵中的权值可以通过定点数线性组合的形式表示,定点数可以有效降低深度神经网络的存储量,并且通过对参数矩阵中各权值的归一化操作,归一化后的权值具有一致性,各权值的运算更易实现,使得深度神经网络的计算量大大降低。并且通过将网络层的输入激活量表示为第二预设基矩阵中元素的线性组合,使得原本为浮点数的输入激活量中的元素数值可以通过定点数线性组合的形式表示,可以进一步降低深度神经网络的存储量。通过将输入激活量和参数矩阵的乘法操作等价为移位和加法操作的形式,大大减少了计算量,且由于移位型基矩阵的硬件易实现性,有效减小了硬件开销。
相应于上述方法实施例,本发明实施例提供了一种深度神经网络中的网络层运算装置,如图5所示,该深度神经网络中的网络层运算装置可以包括:
第一获取模块510,用于获取深度神经网络中网络层的参数矩阵;
第一归一化模块520,用于对所述参数矩阵中各权值进行归一化操作,得到参数归一化矩阵;
第一线性组合模块530,用于根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为所述第一预设基矩阵中元素的线性组合,得到线性组合矩阵;
运算模块540,用于将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
在本申请实施例中,所述装置还可以包括:
第一统计模块,用于统计所述参数矩阵中的各权值,得到所述参数矩阵的权值范围;
第一提取模块,用于基于所述权值范围,提取所述参数矩阵中绝对值最大的第一权值;
所述第一归一化模块520,具体可以用于:
将所述参数矩阵中的各权值分别除以所述第一权值,得到参数归一化矩阵;
所述运算模块540,具体可以用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一权值与运算结果相乘,得到所述网络层的输出量。
在本申请实施例中,所述第一归一化模块520,具体还可以用于:
将所述参数矩阵中的各权值分别除以所述第一权值的绝对值,得到参数归一化矩阵;
所述运算模块540,具体还可以用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一权值的绝对值与运算结果相乘,得到所述网络层的输出量。
在本申请实施例中,所述第一预设基矩阵为移位型基矩阵,所述移位型基矩阵中各元素为2的幂指数;
所述第一线性组合模块530,具体可以用于:
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵;
所述运算模块540,具体可以用于:
针对所述网络层的输入量中的第一元素,根据与所述第一元素进行乘法运算的所述线性组合矩阵中第二元素的各幂指数,对所述第一元素分别进行多次移位操作,并对所述多次移位操作后的结果相加,得到所述第一元素与所述第二元素的乘积结果;
根据所述输入量中各元素与所述线性组合矩阵中各元素的乘积结果,通过组合的方式对所述输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
应用本实施例,获取深度神经网络中网络层的参数矩阵,对该参数矩阵中各权值进行归一化操作,得到参数归一化矩阵,根据第一预设基矩阵,将参数归一化矩阵中各元素表示为第一预设基矩阵中元素的线性组合,得到线性组合矩阵,将网络层的输入量与得到的线性组合矩阵进行运算,即可得到网络层的输出量。通过将网络层的参数矩阵表示为第一预设基矩阵中元素的线性组合,使得原本为浮点数的参数矩阵中的权值可以通过定点数线性组合的形式表示,定点数可以有效降低深度神经网络的存储量,并且通过对参数矩阵中各权值的归一化操作,归一化后的权值具有一致性,各权值的运算更易实现,使得深度神经网络的计算量大大降低。
基于图5所示实施例,本发明实施例还提供了一种深度神经网络中的网络层运算装置,如图6所示,该深度神经网络中的网络层运算装置可以包括:
第一获取模块610,用于获取深度神经网络中网络层的参数矩阵;
第一归一化模块620,用于对所述参数矩阵中各权值进行归一化操作,得到参数归一化矩阵;
第一线性组合模块630,用于根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为所述第一预设基矩阵中元素的线性组合,得到线性组合矩阵;
第二获取模块640,用于获取所述网络层的输入激活量;
第二归一化模块650,用于对所述输入激活量中各元素数值进行归一化操作,得到激活量归一化矩阵;
第二线性组合模块660,用于根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为所述第二预设基矩阵中元素的线性组合,得到所述网络层的输入量;
运算模块670,用于将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
在本申请实施例中,所述装置还包括:
第二统计模块,用于统计所述输入激活量的各元素数值,得到所述输入激活量的元素数值范围;
第二提取模块,用于基于所述元素数值范围,提取所述输入激活量中绝对值最大的第一元素数值;
所述第二归一化模块650,具体可以用于:
将所述输入激活量中的各元素数值分别除以所述第一元素数值,得到激活量归一化矩阵;
所述运算模块670,具体可以用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一元素数值与运算结果相乘,得到所述网络层的输出量。
在本申请实施例中,所述第二归一化模块650,具体还可以用于:
将所述输入激活量中的各元素数值分别除以所述第一元素数值的绝对值,得到激活量归一化矩阵;
所述运算模块670,具体还可以用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一元素数值的绝对值与运算结果相乘,得到所述网络层的输出量。
在本申请实施例中,所述第一预设基矩阵及所述第二预设基矩阵均为移位型基矩阵,所述移位型基矩阵中各元素为2的幂指数;
所述第一线性组合模块630,具体可以用于:
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵;
所述第二线性组合模块660,具体可以用于:
根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为2的幂指数的线性组合,得到所述网络层的输入量;
所述运算模块670,具体可以用于:
根据所述网络层的输入量中第一元素的各幂指数分别与所述线性组合矩阵中第二元素的各幂指数的和,对所述第一元素进行多次移位操作,并对所述多次移位操作后的结果相加,得到所述第一元素与所述第二元素的乘积结果,所述第二元素为:所述线性组合矩阵中与所述第一元素进行乘法运算的元素;
根据所述输入量中各元素与所述线性组合矩阵中各元素的乘积结果,通过组合的方式对所述输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
应用本实施例,获取深度神经网络中网络层的参数矩阵,对该参数矩阵中各权值进行归一化操作,得到参数归一化矩阵,根据第一预设基矩阵,将参数归一化矩阵中各元素表示为第一预设基矩阵中元素的线性组合,得到线性组合矩阵,将网络层的输入量与得到的线性组合矩阵进行运算,即可得到网络层的输出量。通过将网络层的参数矩阵表示为第一预设基矩阵中元素的线性组合,使得原本为浮点数的参数矩阵中的权值可以通过定点数线性组合的形式表示,定点数可以有效降低深度神经网络的存储量,并且通过对参数矩阵中各权值的归一化操作,归一化后的权值具有一致性,各权值的运算更易实现,使得深度神经网络的计算量大大降低。并且通过将网络层的输入激活量表示为第二预设基矩阵中元素的线性组合,使得原本为浮点数的输入激活量中的元素数值可以通过定点数线性组合的形式表示,可以进一步降低深度神经网络的存储量。通过将输入激活量和参数矩阵的乘法操作等价为移位和加法操作的形式,大大减少了计算量,且由于移位型基矩阵的硬件易实现性,有效减小了硬件开销。
为了在有效降低深度神经网络的存储量的同时,降低计算量,本发明实施例还提供了一种计算机设备,如图7所示,包括处理器701和存储器702,其中,
存储器702,用于存放计算机程序;
处理器701,用于执行存储器702上所存放的程序时,实现上述深度神经网络中的网络层运算方法的所有步骤。
存储器702与处理器701之间可以通过有线连接或者无线连接的方式进行数据传输,并且计算机设备可以通过有线通信接口或者无线通信接口与其他的设备进行通信。
上述存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本实施例中,该计算机设备的处理器通过读取存储器中存储的计算机程序,并通过运行该计算机程序,能够实现:通过将网络层的参数矩阵表示为第一预设基矩阵中元素的线性组合,使得原本为浮点数的参数矩阵中的权值可以通过定点数线性组合的形式表示,定点数可以有效降低深度神经网络的存储量,并且通过对参数矩阵中各权值的归一化操作,归一化后的权值具有一致性,各权值的运算更易实现,使得深度神经网络的计算量大大降低。
另外,相应于上述实施例所提供的深度神经网络中的网络层运算方法,本发明实施例提供了一种存储介质,用于存储计算机程序,所述计算机程序被处理器执行时,实现上述深度神经网络中的网络层运算方法的所有步骤。
本实施例中,存储介质存储有在运行时执行本发明实施例所提供的深度神经网络中的网络层运算方法的应用程序,因此能够实现:通过将网络层的参数矩阵表示为第一预设基矩阵中元素的线性组合,使得原本为浮点数的参数矩阵中的权值可以通过定点数线性组合的形式表示,定点数可以有效降低深度神经网络的存储量,并且通过对参数矩阵中各权值的归一化操作,归一化后的权值具有一致性,各权值的运算更易实现,使得深度神经网络的计算量大大降低。
对于计算机设备以及存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、计算机设备及存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (16)

1.一种深度神经网络中的网络层运算方法,其特征在于,所述方法包括:
获取深度神经网络中网络层的参数矩阵;
对所述参数矩阵中各权值进行归一化操作,得到参数归一化矩阵;
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为所述第一预设基矩阵中元素的线性组合,得到线性组合矩阵;
将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
2.根据权利要求1所述的方法,其特征在于,在所述获取深度神经网络中网络层的参数矩阵之后,所述方法还包括:
统计所述参数矩阵中的各权值,得到所述参数矩阵的权值范围;
基于所述权值范围,提取所述参数矩阵中绝对值最大的第一权值;
所述对所述参数矩阵中各权值进行归一化操作,得到参数归一化矩阵,包括:
将所述参数矩阵中的各权值分别除以所述第一权值,得到参数归一化矩阵;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一权值与运算结果相乘,得到所述网络层的输出量。
3.根据权利要求2所述的方法,其特征在于,所述对所述参数矩阵中各权值进行归一化操作,得到参数归一化矩阵,包括:
将所述参数矩阵中的各权值分别除以所述第一权值的绝对值,得到参数归一化矩阵;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一权值的绝对值与运算结果相乘,得到所述网络层的输出量。
4.根据权利要求1所述的方法,其特征在于,所述第一预设基矩阵为移位型基矩阵,所述移位型基矩阵中各元素为2的幂指数;
所述根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为所述第一预设基矩阵中元素的线性组合,得到线性组合矩阵,包括:
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
针对所述网络层的输入量中的第一元素,根据与所述第一元素进行乘法运算的所述线性组合矩阵中第二元素的各幂指数,对所述第一元素分别进行多次移位操作,并对所述多次移位操作后的结果相加,得到所述第一元素与所述第二元素的乘积结果;
根据所述输入量中各元素与所述线性组合矩阵中各元素的乘积结果,通过组合的方式对所述输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
5.根据权利要求1所述的方法,其特征在于,在所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量之前,所述方法还包括:
获取所述网络层的输入激活量;
对所述输入激活量中各元素数值进行归一化操作,得到激活量归一化矩阵;
根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为所述第二预设基矩阵中元素的线性组合,得到所述网络层的输入量。
6.根据权利要求5所述的方法,其特征在于,在所述获取所述网络层的输入激活量之后,所述方法还包括:
统计所述输入激活量的各元素数值,得到所述输入激活量的元素数值范围;
基于所述元素数值范围,提取所述输入激活量中绝对值最大的第一元素数值;
所述对所述输入激活量中各元素数值进行归一化操作,得到激活量归一化矩阵,包括:
将所述输入激活量中的各元素数值分别除以所述第一元素数值,得到激活量归一化矩阵;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一元素数值与运算结果相乘,得到所述网络层的输出量。
7.根据权利要求6所述的方法,其特征在于,所述对所述输入激活量中各元素数值进行归一化操作,得到激活量归一化矩阵,包括:
将所述输入激活量中的各元素数值分别除以所述第一元素数值的绝对值,得到激活量归一化矩阵;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一元素数值的绝对值与运算结果相乘,得到所述网络层的输出量。
8.根据权利要求5所述的方法,其特征在于,所述第一预设基矩阵及所述第二预设基矩阵均为移位型基矩阵,所述移位型基矩阵中各元素为2的幂指数;
所述根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为所述第一预设基矩阵中元素的线性组合,得到线性组合矩阵,包括:
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵;
所述根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为所述第二预设基矩阵中元素的线性组合,得到所述网络层的输入量,包括:
根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为2的幂指数的线性组合,得到所述网络层的输入量;
所述将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量,包括:
根据所述网络层的输入量中第一元素的各幂指数分别与所述线性组合矩阵中第二元素的各幂指数的和,对所述第一元素进行多次移位操作,并对所述多次移位操作后的结果相加,得到所述第一元素与所述第二元素的乘积结果,所述第二元素为:所述线性组合矩阵中与所述第一元素进行乘法运算的元素;
根据所述输入量中各元素与所述线性组合矩阵中各元素的乘积结果,通过组合的方式对所述输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
9.一种深度神经网络中的网络层运算装置,其特征在于,所述装置包括:
第一获取模块,用于获取深度神经网络中网络层的参数矩阵;
第一归一化模块,用于对所述参数矩阵中各权值进行归一化操作,得到参数归一化矩阵;
第一线性组合模块,用于根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为所述第一预设基矩阵中元素的线性组合,得到线性组合矩阵;
运算模块,用于将所述网络层的输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一统计模块,用于统计所述参数矩阵中的各权值,得到所述参数矩阵的权值范围;
第一提取模块,用于基于所述权值范围,提取所述参数矩阵中绝对值最大的第一权值;
所述第一归一化模块,具体用于:
将所述参数矩阵中的各权值分别除以所述第一权值,得到参数归一化矩阵;
所述运算模块,具体用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一权值与运算结果相乘,得到所述网络层的输出量。
11.根据权利要求10所述的装置,其特征在于,所述第一归一化模块,具体还用于:
将所述参数矩阵中的各权值分别除以所述第一权值的绝对值,得到参数归一化矩阵;
所述运算模块,具体还用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一权值的绝对值与运算结果相乘,得到所述网络层的输出量。
12.根据权利要求9所述的装置,其特征在于,所述第一预设基矩阵为移位型基矩阵,所述移位型基矩阵中各元素为2的幂指数;
所述第一线性组合模块,具体用于:
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵;
所述运算模块,具体用于:
针对所述网络层的输入量中的第一元素,根据与所述第一元素进行乘法运算的所述线性组合矩阵中第二元素的各幂指数,对所述第一元素分别进行多次移位操作,并对所述多次移位操作后的结果相加,得到所述第一元素与所述第二元素的乘积结果;
根据所述输入量中各元素与所述线性组合矩阵中各元素的乘积结果,通过组合的方式对所述输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
13.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取所述网络层的输入激活量;
第二归一化模块,用于对所述输入激活量中各元素数值进行归一化操作,得到激活量归一化矩阵;
第二线性组合模块,用于根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为所述第二预设基矩阵中元素的线性组合,得到所述网络层的输入量。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第二统计模块,用于统计所述输入激活量的各元素数值,得到所述输入激活量的元素数值范围;
第二提取模块,用于基于所述元素数值范围,提取所述输入激活量中绝对值最大的第一元素数值;
所述第二归一化模块,具体用于:
将所述输入激活量中的各元素数值分别除以所述第一元素数值,得到激活量归一化矩阵;
所述运算模块,具体用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一元素数值与运算结果相乘,得到所述网络层的输出量。
15.根据权利要求14所述的装置,其特征在于,所述第二归一化模块,具体还用于:
将所述输入激活量中的各元素数值分别除以所述第一元素数值的绝对值,得到激活量归一化矩阵;
所述运算模块,具体还用于:
将所述网络层的输入量与所述线性组合矩阵进行运算,并将所述第一元素数值的绝对值与运算结果相乘,得到所述网络层的输出量。
16.根据权利要求13所述的装置,其特征在于,所述第一预设基矩阵及所述第二预设基矩阵均为移位型基矩阵,所述移位型基矩阵中各元素为2的幂指数;
所述第一线性组合模块,具体用于:
根据第一预设基矩阵,将所述参数归一化矩阵中各元素表示为2的幂指数的线性组合,得到线性组合矩阵;
所述第二线性组合模块,具体用于:
根据第二预设基矩阵,将所述激活量归一化矩阵中各元素表示为2的幂指数的线性组合,得到所述网络层的输入量;
所述运算模块,具体用于:
根据所述网络层的输入量中第一元素的各幂指数分别与所述线性组合矩阵中第二元素的各幂指数的和,对所述第一元素进行多次移位操作,并对所述多次移位操作后的结果相加,得到所述第一元素与所述第二元素的乘积结果,所述第二元素为:所述线性组合矩阵中与所述第一元素进行乘法运算的元素;
根据所述输入量中各元素与所述线性组合矩阵中各元素的乘积结果,通过组合的方式对所述输入量与所述线性组合矩阵进行运算,得到所述网络层的输出量。
CN201810479974.0A 2018-05-18 2018-05-18 深度神经网络中的网络层运算方法及装置 Pending CN110503182A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810479974.0A CN110503182A (zh) 2018-05-18 2018-05-18 深度神经网络中的网络层运算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810479974.0A CN110503182A (zh) 2018-05-18 2018-05-18 深度神经网络中的网络层运算方法及装置

Publications (1)

Publication Number Publication Date
CN110503182A true CN110503182A (zh) 2019-11-26

Family

ID=68585057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810479974.0A Pending CN110503182A (zh) 2018-05-18 2018-05-18 深度神经网络中的网络层运算方法及装置

Country Status (1)

Country Link
CN (1) CN110503182A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111832704A (zh) * 2020-06-30 2020-10-27 东南大学 一种卷积输入式的嵌套递归神经网络的设计方法
WO2021179281A1 (en) * 2020-03-13 2021-09-16 Intel Corporation Optimizing low precision inference models for deployment of deep neural networks
WO2022040963A1 (en) * 2020-08-26 2022-03-03 Intel Corporation Methods and apparatus to dynamically normalize data in neural networks
CN114819149A (zh) * 2022-06-28 2022-07-29 深圳比特微电子科技有限公司 基于变换神经网络的数据处理方法、装置和介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021179281A1 (en) * 2020-03-13 2021-09-16 Intel Corporation Optimizing low precision inference models for deployment of deep neural networks
CN111832704A (zh) * 2020-06-30 2020-10-27 东南大学 一种卷积输入式的嵌套递归神经网络的设计方法
WO2022040963A1 (en) * 2020-08-26 2022-03-03 Intel Corporation Methods and apparatus to dynamically normalize data in neural networks
CN114819149A (zh) * 2022-06-28 2022-07-29 深圳比特微电子科技有限公司 基于变换神经网络的数据处理方法、装置和介质

Similar Documents

Publication Publication Date Title
CN110503182A (zh) 深度神经网络中的网络层运算方法及装置
CN107818314B (zh) 脸部图像处理方法、装置及服务器
CN110046698A (zh) 异质图神经网络生成方法、装置、电子设备及存储介质
CN109446430A (zh) 产品推荐的方法、装置、计算机设备及可读存储介质
CN110413255A (zh) 人工神经网络调整方法和装置
CN108833458B (zh) 一种应用推荐方法、装置、介质及设备
KR20190052893A (ko) 뉴럴 네트워크 연산을 위한 전처리 장치 및 방법
CN110163368A (zh) 基于混合精度的深度学习模型训练方法、装置及***
CN109871949A (zh) 卷积神经网络加速器及加速方法
CN107679082A (zh) 问答搜索方法、装置以及电子设备
CN109671020A (zh) 图像处理方法、装置、电子设备和计算机存储介质
CN111198938A (zh) 一种样本数据处理方法、样本数据处理装置及电子设备
CN106503853A (zh) 一种基于多标度卷积神经网络的外汇交易预测模型
CN109117742A (zh) 手势检测模型处理方法、装置、设备及存储介质
CN108345832A (zh) 一种人脸检测的方法、装置及设备
CN109978261A (zh) 确定负荷预测模型的方法、装置、可读介质及电子设备
CN110647974A (zh) 深度神经网络中的网络层运算方法及装置
CN109409559A (zh) 油田产量递减率的确定方法及装置
CN111178537A (zh) 一种特征提取模型训练方法及设备
CN112883227A (zh) 一种基于多尺度时序特征的视频摘要生成方法和装置
CN115062779A (zh) 基于动态知识图谱的事件预测方法及装置
CN109840353A (zh) 锂离子电池双因素不一致性预测方法及装置
CN116757265A (zh) 神经网络的全局剪枝方法及其装置、电子设备及存储介质
CN116712048A (zh) 血压测量方法、装置及相关设备
CN110069647A (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