一种深度神经网络的卷积层稀疏化方法及装置与流程

文档序号:20756790发布日期:2020-05-15 17:29阅读:380来源:国知局
一种深度神经网络的卷积层稀疏化方法及装置与流程

本申请涉及机器学习技术领域,特别是涉及一种深度神经网络的卷积层稀疏化方法及装置。



背景技术:

深度神经网络作为机器学习研究中的一个新兴领域,通过模仿人脑的机制来解析数据,是一种通过建立和模拟人脑进行分析学习的智能模型。深度神经网络已在目标检测与分割、行为检测与识别、语音识别等方面得到了很好的应用。但是,随着深度神经网络的不断发展,深度神经网络的规模不断增大,数据的存储量和计算量越来越大,使得深度神经网络具有较高的计算复杂度,需要强大的硬件资源。

为了降低深度神经网络的计算复杂度、减少硬件资源的压力,需要对深度神经网络的网络模型进行压缩,目前主流的对深度神经网络的网络模型进行压缩的方法有定点化、稀疏化等。其中,稀疏化主要是将深度神经网络中不重要的权值置零、重要的权值保持不变,从而将深度神经网络稠密的权值转换为稀疏的权值,存储量和计算量得以明显降低。

然而,在相应的深度神经网络稀疏化方法中,稀疏化操作针对的是深度神经网络中的每一个权值,而各权值的无规律性导致了各权值的稀疏化也是无规律可循的。在进行后续的网络模型训练等处理时,尽管深度神经网络中有些权值已经置零,但是并不能规律性的确定具体哪些权值置零,则需要从内存中读取每一个权值,导致内存的访问效率较低。



技术实现要素:

本申请实施例的目的在于提供一种深度神经网络的卷积层稀疏化方法及装置,以提高内存的访问效率。具体技术方案如下:

第一方面,本申请实施例提供了一种深度神经网络的卷积层稀疏化方法,所述方法包括:

获取深度神经网络中卷积层的张量及结构参数;

根据所述结构参数,利用预设维度划分方法,将所述张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元;

针对各维度单元,根据该维度单元中的权值,对该维度单元中的各权值进行相同的稀疏化操作。

可选的,所述根据所述结构参数,利用预设维度划分方法,将所述张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元,包括:

根据所述结构参数中滤波器空间维度的行参数,将所述张量中处于同一行的权值划分为同一维度单元,得到多个行维度单元;

或者,

根据所述结构参数中滤波器空间维度的列参数,将所述张量中处于同一列的权值划分为同一维度单元,得到多个列维度单元。

可选的,所述根据所述结构参数,利用预设维度划分方法,将所述张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元,包括:

根据所述结构参数中的滤波器空间维度参数,将所述张量中处于同一滤波器空间内的权值划分为同一维度单元,得到多个空间维度单元。

可选的,所述根据所述结构参数,利用预设维度划分方法,将所述张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元,包括:

根据所述结构参数中的输入通道参数,将所述张量中处于同一输入通道内的权值划分为同一维度单元,得到多个输入通道维度单元。

可选的,所述针对各维度单元,根据该维度单元中的权值,对该维度单元中的各权值进行相同的稀疏化操作,包括:

针对各维度单元,对该维度单元中各权值的绝对值进行求和计算,得到计算结果;

判断所述计算结果是否大于预设阈值;

若不大于,则将该维度单元中的各权值置零;

若大于,则保持该维度单元中的各权值不变。

第二方面,本申请实施例提供了一种深度神经网络的卷积层稀疏化装置,所述装置包括:

获取模块,用于获取深度神经网络中卷积层的张量及结构参数;

划分模块,用于根据所述结构参数,利用预设维度划分方法,将所述张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元;

稀疏模块,用于针对各维度单元,根据该维度单元中的权值,对该维度单元中的各权值进行相同的稀疏化操作。

可选的,所述划分模块,具体用于:

根据所述结构参数中滤波器空间维度的行参数,将所述张量中处于同一行的权值划分为同一维度单元,得到多个行维度单元;

或者,

根据所述结构参数中滤波器空间维度的列参数,将所述张量中处于同一列的权值划分为同一维度单元,得到多个列维度单元。

可选的,所述划分模块,具体用于:

根据所述结构参数中的滤波器空间维度参数,将所述张量中处于同一滤波器空间内的权值划分为同一维度单元,得到多个空间维度单元。

可选的,所述划分模块,具体用于:

根据所述结构参数中的输入通道参数,将所述张量中处于同一输入通道内的权值划分为同一维度单元,得到多个输入通道维度单元。

可选的,所述稀疏模块,具体用于:

针对各维度单元,对该维度单元中各权值的绝对值进行求和计算,得到计算结果;

判断所述计算结果是否大于预设阈值;

若不大于,则将该维度单元中的各权值置零;

若大于,则保持该维度单元中的各权值不变。

第三方面,本申请实施例提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现本申请实施例第一方面提供的深度神经网络的卷积层稀疏化方法的所有步骤。

第四方面,本申请实施例提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,实现本申请实施例第一方面提供的深度神经网络的卷积层稀疏化方法的所有步骤。

本申请实施例提供的一种深度神经网络的卷积层稀疏化方法及装置,获取深度神经网络中卷积层的张量及结构参数,根据卷积层的结构参数,利用预设维度划分方法,将卷积层的张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元,针对各维度单元,根据该维度单元中的权值,对该维度单元中的各权值进行相同的稀疏化操作。通过将卷积层的张量进行维度划分,得到多个维度单元,针对同一个维度单元中的各权值,采用相同的稀疏化操作,使得深度神经网络的卷积层稀疏化具有一定的规律性,在存储稀疏化后的权值时,可以对权值置零的维度进行标记,则从内存中读取权值时,可以基于该标记,只读取未被置零的权值,提高了内存的访问效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为相应的深度神经网络的卷积层稀疏化后的效果示意图;

图2为本申请实施例的深度神经网络的卷积层稀疏化方法的流程示意图;

图3为本申请实施例的行维度单元的结构示意图;

图4为本申请实施例的列维度单元的结构示意图;

图5为本申请实施例的空间维度单元的结构示意图;

图6为本申请实施例的输入通道维度单元的结构示意图;

图7为本申请实施例的深度神经网络的卷积层稀疏化装置的结构示意图;

图8为本申请实施例的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1为传统针对模型权值稀疏化后的效果示意图,由于稀疏化操作针对的是单个权值,所以大小为c×k×r×s的深度神经网络的卷积层中每个大小为r×s的滤波器中权值的稀疏效果是无规律的(图1中黑色小框代表保持不变的权值,白色小框代表置零的权值)。理论上这种稀疏化方法会将深度神经网络的卷积层张量转换为非常稀疏的卷积层张量,大大降低了深度神经网络的计算与存储资源消耗。

但是,这种稀疏化方法由于无规律性,在通用的硬件加速平台上(如gpu(graphicsprocessingunit,图形处理单元))并不能得到很好的支持,往往需要定制化的硬件加速器来实现,如fpga(field-programmablegatearray,现场可编程门阵列)、asic(applicationspecificintegratedcircuit,专用集成电路)等。虽然这种无规律性的权值稀疏化方法能够通过定制化硬件加速器实现,但往往也需要较高的硬件设计代价。

因此,为了提高内存的访问效率、降低定制化的硬件加速器设计成本,本申请实施例提供了一种深度神经网络的卷积层稀疏化方法、装置、电子设备及机器可读存储介质。

下面,首先对本申请实施例所提供的深度神经网络的卷积层稀疏化方法进行介绍。

本申请实施例所提供的深度神经网络的卷积层稀疏化方法的执行主体可以为实现目标检测与分割、行为检测与识别、语音设备等功能的电子设备。实现本申请实施例所提供的深度神经网络的卷积层稀疏化方法的方式可以为设置于执行主体中的软件、硬件电路和逻辑电路中的至少一种方式。

如图2所示,本申请实施例所提供的一种深度神经网络的卷积层稀疏化方法,可以包括如下步骤:

s201,获取深度神经网络中卷积层的张量及结构参数。

深度神经网络为一个较为宽泛的数据处理方法,具体的,深度神经网络可以为cnn(convolutionalneuralnetwork,卷积神经网络)、rnn(recurrentneuralnetwork,循环神经网络)、lstm(longshorttermmemory,长短期记忆网络)等数据处理方法中的任意一种。

深度神经网络的每一个网络层由于主要进行卷积运算,故也称为卷积层,卷积层的张量实际就是该卷积层中每一个具体的权值,例如,卷积层w的张量为一个四维张量,是指卷积层表示为c×k×r×s维度时,该四维张量中具体的权值。卷积层的结构参数包括卷积层的输出通道数c、输入通道数k,以及滤波器空间维度大小r×s。

s202,根据卷积层的结构参数,利用预设维度划分方法,将该卷积层的张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元。

考虑到卷积特性,深度神经网络的同一卷积层中处于同一维度的权值往往具有更为相近的数值范围,例如有的卷积层中处于同一行的权值大小较为相近,而在有的卷积层中处于同一列的权值大小较为相近,在另一些卷积层中处于同一滤波器空间维度的权值大小较为相近,这与卷积层结构的初始设置以及深度神经网络的功能设置相关。因此,可以根据卷积层的结构参数,将卷积层的张量中处于同一维度的权值划分为同一维度单元。本申请实施例中所提及的同一维度可以包括但不限于:同一滤波器空间维度、滤波器空间维度上的同一行、同一列、同一输入通道。

本申请实施例可以根据深度神经网络的实际情况,来确定维度单元划分的形式。可选的,对卷积层的张量进行维度单元划分的方式具体可以分为以下几种:

第一种方式,根据卷积层的结构参数中滤波器空间维度的行参数,将该卷积层的张量中处于同一行的权值划分为同一维度单元,得到多个行维度单元。

针对卷积层中同一行的权值差异较小的情况,可以根据该卷积层的结构参数中滤波器空间维度的行参数,将该卷积层的张量中处于同一行的权值划分为同一维度单元,可以得到如图3所示的行维度单元,行维度单元的数学表达式为:

cell=w(c,k,r,:)

第二种方式,根据卷积层的结构参数中滤波器空间维度的列参数,将该卷积层的张量中处于同一列的权值划分为同一维度单元,得到多个列维度单元。

针对卷积层中同一列的权值差异较小的情况,可以根据该卷积层的结构参数中滤波器空间维度的列参数,将该卷积层的张量中处于同一列的权值划分为同一维度单元,可以得到如图4所示的列维度单元,列维度单元的数学表达式为:

cell=w(c,k,:,s)

第三种方式,根据卷积层的结构参数中的滤波器空间维度参数,将该卷积层的张量中处于同一滤波器空间内的权值划分为同一维度单元,得到多个空间维度单元。

针对卷积层中同一滤波器空间内的权值差异较小的情况,可以根据该卷积层的结构参数中的滤波器空间维度参数,将该卷积层的张量中处于同一滤波器空间内的权值划分为同一维度单元,可以得到如图5所示的空间维度单元,空间维度单元的数学表达式为:

cell=w(c,k,:,:)

第四种方式,根据卷积层的结构参数中的输入通道参数,将该卷积层的张量中处于同一输入通道内的权值划分为同一维度单元,得到多个输入通道维度单元。

针对卷积层中同一输入通道内的权值差异较小的情况,可以根据该卷积层的结构参数中的输入通道参数,将该卷积层的张量中处于同一输入通道内的权值划分为同一维度单元,可以得到如图6所示的输入通道维度单元,输入通道维度单元的数学表达式为:

cell=w(c,:,r,s)

以上只是示例性的给出了对卷积层的张量进行维度单元划分的四种方式,但实际维度单元划分的方式不仅限于此,只要将权值大小较为相近的权值划分为同一维度单元即可,例如将多行划分为同一维度单元、多列划分为同一维度单元等,通过维度单元的划分可以保证同一维度单元中的各权值具有一定的规律性。

s203,针对各维度单元,根据该维度单元中的权值,对该维度单元中的各权值进行相同的稀疏化操作。

在对卷积层的张量划分得到各维度单元后,由于同一维度单元中的各权值具有一定的规律性,可以认为维度单元是结构化的单元,可以基于一个维度单元中的权值对该维度单元中的各权值进行相同的稀疏化操作,通过稀疏化操作后,被处理的维度单元整体上被划分为零值或者非零值。

对维度单元中的各权值进行稀疏化操作的依据可以有很多种,例如,可以判断维度单元中最大的权值是否小于一个预设阈值,如果小于,则说明维度单元中的各权值对应深度神经网络运算来讲都不重要,则可以将该维度单元中的各权值都置零;还可以判断维度单元中最小的权值是否大于一个预设阈值,如果大于,则说明维度单元中的各权值对应深度神经网络运算来讲都重要,则可以保留该维度单元中的各权值;还可以计算维度单元中各权值的平均值,判断该平均值是否大于一个预设阈值,如果大于,则说明维度单元中的各权值对应深度神经网络运算来讲都重要,则可以保留该维度单元中的各权值,如果不大于,则明维度单元中的各权值对应深度神经网络运算来讲都不重要,则可以将该维度单元中的各权值都置零;还可以对维度单元中各权值的绝对值进行求和计算,判断计算结果是否大于一个预设阈值,如果大于,则说明维度单元中的各权值对应深度神经网络运算来讲都重要,则可以保留该维度单元中的各权值,如果不大于,则明维度单元中的各权值对应深度神经网络运算来讲都不重要,则可以将该维度单元中的各权值都置零。对维度单元中的各权值进行稀疏化操作的依据不仅限于上述这几种方式,能够通过综合判定维度单元中权值对于深度神经网络运算的重要度的方式均属于本申请实施例的保护范围,这里不再一一赘述。

可选的,s203具体可以为:

针对各维度单元,对该维度单元中各权值的绝对值进行求和计算,得到计算结果;

判断计算结果是否大于预设阈值;

若不大于,则将该维度单元中的各权值置零;

若大于,则保持该维度单元中的各权值不变。

对于维度单元来讲,虽然同一维度单元中各权值的取值较为相近,但不免会偶尔存在有差别较大的权值,但同一维度单元中的各权值整体来讲还是趋近的,因此,为了避免这种情况影响最终的稀疏化,对维度单元中的各权值进行稀疏化操作的依据具体可以通过计算维度单元中各权值的绝对值进行求和计算来评估该维度单元在整个深度神经网络中的重要度,可以将计算结果大的维度单元设置为重要,将计算结果小的维度单元设置为不重要,对于不重要的维度单元,可以将其内部的所有权值置零,对于重要的维度单元,可以保持原有的权值不变。后续的深度神经网络训练过程中,可以仅对重要的维度单元的权值进行精调,从而降低了整个深度神经网络运算的计算量。

应用本实施列,获取深度神经网络中卷积层的张量及结构参数,根据卷积层的结构参数,利用预设维度划分方法,将卷积层的张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元,针对各维度单元,根据该维度单元中的权值,对该维度单元中的各权值进行相同的稀疏化操作。通过将卷积层的张量进行维度划分,得到多个维度单元,针对同一个维度单元中的各权值,采用相同的稀疏化操作,使得深度神经网络的卷积层稀疏化具有一定的规律性,在存储稀疏化后的权值时,可以对权值置零的维度进行标记,则从内存中读取权值时,可以基于该标记,只读取未被置零的权值,提高了内存的访问效率。并且,由于度神经网络的卷积层稀疏化具有一定的规律性,可以在通用的硬件加速平台上实现稀疏化的深度神经网络的运行,大大降低了硬件设计成本。

相应于上述方法实施例,本申请实施例提供了一种深度神经网络的卷积层稀疏化装置,如图7所示,该装置可以包括:

获取模块710,用于获取深度神经网络中卷积层的张量及结构参数;

划分模块720,用于根据所述结构参数,利用预设维度划分方法,将所述张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元;

稀疏模块730,用于针对各维度单元,根据该维度单元中的权值,对该维度单元中的各权值进行相同的稀疏化操作。

可选的,所述划分模块720,具体可以用于:

根据所述结构参数中滤波器空间维度的行参数,将所述张量中处于同一行的权值划分为同一维度单元,得到多个行维度单元;

或者,

根据所述结构参数中滤波器空间维度的列参数,将所述张量中处于同一列的权值划分为同一维度单元,得到多个列维度单元。

可选的,所述划分模块720,具体可以用于:

根据所述结构参数中的滤波器空间维度参数,将所述张量中处于同一滤波器空间内的权值划分为同一维度单元,得到多个空间维度单元。

可选的,所述划分模块720,具体可以用于:

根据所述结构参数中的输入通道参数,将所述张量中处于同一输入通道内的权值划分为同一维度单元,得到多个输入通道维度单元。

可选的,所述稀疏模块730,具体可以用于:

针对各维度单元,对该维度单元中各权值的绝对值进行求和计算,得到计算结果;

判断所述计算结果是否大于预设阈值;

若不大于,则将该维度单元中的各权值置零;

若大于,则保持该维度单元中的各权值不变。

应用本实施列,获取深度神经网络中卷积层的张量及结构参数,根据卷积层的结构参数,利用预设维度划分方法,将卷积层的张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元,针对各维度单元,根据该维度单元中的权值,对该维度单元中的各权值进行相同的稀疏化操作。通过将卷积层的张量进行维度划分,得到多个维度单元,针对同一个维度单元中的各权值,采用相同的稀疏化操作,使得深度神经网络的卷积层稀疏化具有一定的规律性,在存储稀疏化后的权值时,可以对权值置零的维度进行标记,则从内存中读取权值时,可以基于该标记,只读取未被置零的权值,提高了内存的访问效率。

本申请实施例还提供了一种电子设备,如图8所示,可以包括处理器801和机器可读存储介质802,所述机器可读存储介质802存储有能够被所述处理器801执行的机器可执行指令,所述处理器801被所述机器可执行指令促使:实现如上述深度神经网络的卷积层稀疏化方法的所有步骤。

上述机器可读存储介质可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离上述处理器的存储装置。

上述处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

机器可读存储介质802与处理器801之间可以通过有线连接或者无线连接的方式进行数据传输,并且电子设备可以通过有线通信接口或者无线通信接口与其他的设备进行通信。图8所示的仅为处理器801与机器可读存储介质802之间通过总线进行数据传输的示例,不作为具体连接方式的限定。

本实施例中,处理器801通过读取机器可读存储介质802中存储的机器可执行指令,并通过运行该机器可执行指令,能够实现:获取深度神经网络中卷积层的张量及结构参数,根据卷积层的结构参数,利用预设维度划分方法,将卷积层的张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元,针对各维度单元,根据该维度单元中的权值,对该维度单元中的各权值进行相同的稀疏化操作。通过将卷积层的张量进行维度划分,得到多个维度单元,针对同一个维度单元中的各权值,采用相同的稀疏化操作,使得深度神经网络的卷积层稀疏化具有一定的规律性,在存储稀疏化后的权值时,可以对权值置零的维度进行标记,则从内存中读取权值时,可以基于该标记,只读取未被置零的权值,提高了内存的访问效率。

本申请实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,实现如上述深度神经网络的卷积层稀疏化方法的所有步骤。

本实施例中,机器可读存储介质存储有在运行时执行本申请实施例所提供的深度神经网络的卷积层稀疏化方法的机器可执行指令,因此能够实现:获取深度神经网络中卷积层的张量及结构参数,根据卷积层的结构参数,利用预设维度划分方法,将卷积层的张量中处于同一维度的权值划分为同一维度单元,得到多个维度单元,针对各维度单元,根据该维度单元中的权值,对该维度单元中的各权值进行相同的稀疏化操作。通过将卷积层的张量进行维度划分,得到多个维度单元,针对同一个维度单元中的各权值,采用相同的稀疏化操作,使得深度神经网络的卷积层稀疏化具有一定的规律性,在存储稀疏化后的权值时,可以对权值置零的维度进行标记,则从内存中读取权值时,可以基于该标记,只读取未被置零的权值,提高了内存的访问效率。

对于电子设备以及机器可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1