神经网络压缩的方法、数据处理的方法及相关装置与流程

文档序号:21411061发布日期:2020-07-07 14:46阅读:235来源:国知局
神经网络压缩的方法、数据处理的方法及相关装置与流程

本申请涉及人工智能技术领域,特别涉及一种神经网络压缩的方法、数据处理的方法及相关装置。



背景技术:

三维卷积神经网络(convolutionalneuralnetworks,cnn)的输入是视频(或多帧图像),因此,三维卷积(3dimensionconvolution,3dconv)除了在高、宽的空间上进行滑动,还在时间维度(或称为深度维度)上进行滑动。因为三维卷积考虑了视频或多帧图像的时间维度之间的相互信息,三维卷积适合于视频领域和三维图像领域的相关处理。

业界提出针对卷积神经网络模型的压缩,以减少卷积神经网络的参数量和计算量。当前技术中,针对三维卷积神经网络模型的压缩,是通过迁移二维卷积神经网络模型的压缩方法来实现的,这样做,不能有效地减少三维卷积神经网络的计算量。

进一步减少三维卷积神经网络的计算量,是亟需解决的技术问题。



技术实现要素:

本申请提供一种神经网络压缩的方法、数据处理的方法及相关装置,相对于现有技术,可以进一步减少三维卷积神经网络的参数量与计算量。

第一方面,提供一种神经网络压缩的方法,所述方法包括:对待压缩的三维卷积神经网络包括的第一三维卷积核执行以下操作:在该第一三维卷积核的时间维度上对该第一三维卷积核进行正交变换;根据正交变换后的该第一三维卷积核在时间维度上的稀疏性,对该第一三维卷积核的时间维度进行剪枝,得到压缩后的三维卷积神经网络。

在第一三维卷积核的时间维度上对该第一三维卷积核进行正交变换,表示,对第一三维卷积核的每个时间点上的二维卷积核做正交变换。

三维卷积核在时间维度上具有相似性,通过在三维卷积核的时间维度上对三维卷积核进行正交变换,可以使得具有较大相似性的二维卷积核(指的是,三维卷积核中各个时间点上的二维卷积核)呈现出稀疏性,从而可以删掉较为稀疏的二维卷积核,实现对三维卷积核的时间维度上的剪枝。

本申请通过在待压缩的三维卷积神经网络的三维卷积核的时间维度上对该三维卷积核进行正交变换,从而可以对正交变换后的三维卷积核中稀疏的时间维度进行剪枝,相对于现有技术,可以进一步减少三维卷积神经网络的参数量,因此,可以有效减少三维卷积神经网络的计算量。

结合第一方面,在第一方面的一种可能的实现方式中,所述在第一三维卷积核的时间维度上对该第一三维卷积核进行正交变换,包括:采用正交矩阵,在该第一三维卷积核的时间维度上对该第一三维卷积核进行正交变换,。

所述正交矩阵的获取方法可以有多种。

作为一种可选的实施方式,所述正交矩阵通过对三维卷积核进行离散余弦变换(discretecosinetransform,dct)得到。

作为另一种可选的实施方式,所述正交矩阵通过学习得到。所述正交矩阵是通过目标优化函数学习得到的,该目标优化函数包括第一项与第二项,该第一项使得该正交变换可逆,该第二项使得该正交变换后的该第一三维卷积核在时间维度是稀疏的。

作为一种实施方式,用于学习正交矩阵的目标优化函数可以为如下目标优化函数(1)。

目标优化函数(1)

s.t.sts=i

其中,x表示该待压缩的三维卷积神经网络的输入数据对应的矩阵,t表示矩阵的转置,f表示该第一三维卷积核对应的矩阵,y表示该待压缩的三维卷积神经网络的输出数据对应的矩阵,该第一三维卷积核的大小为d2t,d表示该第一三维卷积核的高度与宽度,t表示该第一三维卷积核的时间维度,fi表示t维向量,c表示该第一三维卷积核的输入通道,s表示该正交矩阵,λ为常数,表示f范数||||f的平方,||||2,1表示l21范数。

在目标优化函数(1)中,为目标优化函数的第一项,为目标优化函数的第二项。其中,所述第一项能够使得变换是可逆的,这样可以实现卷积操作可以直接在正交变换后的目标域中进行,从而可以实现计算加速。第二项能够使得所述正交变换后的三维卷积核在时间维度是稀疏的,这可以实现计算加速。

可选地,用于学习正交矩阵的目标优化函数还包括第三项,该第三项为该第一三维卷积核的通道的函数的一范数。

作为另一种实施方式,用于学习正交矩阵的目标优化函数可以为如下目标优化函数(3)。

目标优化函数(3)

s.t.sts=i

其中,x表示该待压缩的三维卷积神经网络的输入数据对应的矩阵,t表示矩阵的转置,f表示该第一三维卷积核对应的矩阵,y表示该待压缩的三维卷积神经网络的输出数据对应的矩阵,该第一三维卷积核的大小为d2t,d表示该第一三维卷积核的高度与宽度,t表示该第一三维卷积核的时间维度,fi表示t维向量,c表示该第一三维卷积核的输入通道,s表示该正交矩阵,β表示该第一三维卷积核的通道的函数,γ与λ为常数,表示f范数||||f的平方,||||1表示一范数,||||2,1表示l21范数。

其中,为该目标优化函数的第一项,为该目标优化函数的第二项,γ||β||1为该目标优化函数的第三项。其中,所述第一项能够使得变换是可逆的,这样可以实现卷积操作可以直接在正交变换后的目标域中进行,从而可以实现计算加速。第二项能够使得所述正交变换后的三维卷积核在时间维度是稀疏的,这可以实现计算加速。

本申请通过对三维卷积核进行可学习的正交变换,这样使得对三维卷积核的正交变换更加适合于压缩三维卷积核的时间维度,因此可以实现精度损失较小的计算加速。

结合第一方面,在第一方面的一种可能的实现方式中,所述根据正交变换后的该第一三维卷积核在时间维度上的稀疏性,对该第一三维卷积核的时间维度进行剪枝,包括:获取正交变换后的所述第一三维卷积核在时间维度上的稀疏性;根据所述稀疏性,对所述第一三维卷积核的时间维度进行剪枝。

可以采用多种方式获取正交变换后的所述第一三维卷积核在时间维度上的稀疏性。

可选地,作为一种实施方式,根据正交变换后的所述第一三维卷积核的l21范数,获取正交变换后的所述第一三维卷积核在时间维度上的稀疏性。

可选地,也可以采用其他可行的方式,获取正交变换后的所述第一三维卷积核在时间维度上的稀疏性。

结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:对所述第一三维卷积核的通道进行剪枝,以获得压缩后的三维卷积神经网络。

第二方面提供一种数据处理的方法,所述方法包括:将待处理的三维图像数据输入压缩后的三维卷积神经网络;利用该压缩后的三维卷积神经网络对该三维图像数据进行处理,获得该三维图像数据的处理结果。

其中,该压缩后的三维卷积神经网络是进行如下操作得到的:在待压缩的三维卷积神经网络包括的第一三维卷积核的时间维度上对该第一三维卷积核进行正交变换;根据正交变换后的该第一三维卷积核在时间维度上的稀疏性,对该第一三维卷积核的时间维度进行剪枝。

其中,在对待压缩的三维卷积神经网络的压缩过程中,待压缩的三维卷积神经网络的输入数据为该三维图像数据的训练样本。

关于该压缩后的三维卷积神经网络的获取方法参见第一方面的描述,这里不再赘述。

结合第二方面,在第二方面的一种可能的实现方式中,该三维图像数据为视频数据;

其中,利用该压缩后的三维卷积神经网络对该三维图像数据进行处理,获得该三维图像数据的处理结果,包括:利用该压缩后的三维卷积神经网络对该视频数据进行动作识别处理,获得该视频数据的动作识别结果。

其中,在对待压缩的三维卷积神经网络的压缩过程中,待压缩的三维卷积神经网络的输入数据为该视频数据的训练样本。

结合第二方面,在第二方面的一种可能的实现方式中,该三维图像数据为多帧图像数据,其中,利用该压缩后的三维卷积神经网络对该三维图像数据进行处理,获得该三维图像数据的处理结果,包括:利用该压缩后的三维卷积神经网络对该多帧图像数据进行目标分割处理,获得该多帧图像数据的目标分割结果。

其中,在对待压缩的三维卷积神经网络的压缩过程中,待压缩的三维卷积神经网络的输入数据为该多帧图像数据的训练样本。

结合第二方面,在第二方面的一种可能的实现方式中,将待处理的三维图像数据输入压缩后的三维卷积神经网络,包括:采用正交矩阵,对该三维图像数据进行正交变换,得到正交变换后的三维图像数据;将该正交变换后的三维图像数据输入该压缩后的三维卷积神经网络。其中,该正交矩阵与对待压缩的三维卷积神经网络的三维卷积核进行正交变换时所使用的正交矩阵是一致的。

本申请通过在正交变换后的目标域中进行卷积操作,从而可以实现计算加速。

第三方面,提供一种数据处理的装置,该装置包括用于执行上述第一方面或第二方面中的方法的模块。

在该装置包括用于执行上述第一方面的方法的模块的情形下,该装置可以称为神经网络压缩的装置。

第四方面,提供一种数据处理的装置,该装置包括:存储器,用于存储程序;处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行上述第一方面或第二方面中的方法。

在该处理器用于执行上述第一方面的方法的情形下,该装置可以称为神经网络压缩的装置。

第五方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行上述第一方面或第二方面中的方法。

第六方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第二方面中的方法。

第七方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面或第二方面中的方法。

可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行上述第一方面或第二方面中的方法。

第八方面,提供一种电子设备,该电子设备包括上述第四方面或第五方面的数据处理的装置。

基于上述描述,本申请通过在待压缩的三维卷积神经网络的三维卷积核的时间维度上对该三维卷积核进行正交变换,并对正交变换后的三维卷积核中稀疏的时间维度进行剪枝,相对于现有技术,可以进一步减少三维卷积神经网络的参数量,进而可以有效减少三维卷积神经网络的计算量。

附图说明

图1是三维卷积神经网络的示意图;

图2是三维卷积操作的示意图;

图3是本申请实施例提供的神经网络压缩的方法的示意性流程图;

图4、图5与图6是本申请实施例中对正交变换后的三维卷积核的时间维度进行剪枝的示意图;

图7是本申请实施例提供的数据处理的方法的示意性流程图;

图8是本申请另一实施例提供的数据处理的方法的示意性流程图;

图9是本申请实施例提供的神经网络压缩的装置的示意性框图;

图10是本申请实施例提供的数据处理的装置的另一示意性框图;

图11是本申请实施例提供的数据处理的装置的又一示意性框图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

三维图像处理是计算机视觉领域重要的基础任务,例如,在终端视觉、医学图像等方面有着广泛的应用。三维卷积神经网络(convolutionalneuralnetworks,cnn)被提出来,可用于处理视频领域与三维图像领域的相关问题。

三维卷积神经网络的输入是视频(或多帧图像),因此,三维卷积(3dimensionconvolution,3dconv)除了在高、宽的空间上进行滑动,还在时间维度(或称为深度维度)上进行滑动,如图1所示。

示例性地,图2为三维卷积操作的示意图。输入特征图是三维的,h表示输入特征图的高度,w表示输入特征图的宽度,t表示输入特征图的深度(对应时间维度)。卷积核是三维的,d表示卷积核的宽度与高度,t表示卷积核的深度(对应时间维度)。c表示三维卷积核的输入通道,n表示三维卷积核的输出通道,其中,输入通道c与输入特征图的通道c一致,输出通道n与输出特征图的通道n一致。如图2所示,c通道的大小为w×h×t的输入特征图与三维卷积核进行卷积操作,得到n通道的大小为w’×h’×t’的输出特征图。

因为三维卷积考虑了视频或多帧图像的时间维度之间的相互信息,因此,三维卷积适合于视频领域和三维图像领域的相关处理。三维卷积通常用来进行视频分类或三维图像分割的任务。

三维卷积神经网络的参数量和计算量巨大(参见图1与图2)。应理解,二维卷积在二维的输入图像上进行滑动,而三维卷积的输入是视频(或多帧图像),因此三维卷积除了在长、宽的空间上进行滑动,还在时间维度上进行滑动,因此,三维卷积神经网络的参数量与计算量相比二维卷积神经网络是乘法级别的增加。例如,一个含有几十万参数量的三维卷积核,卷积操作的每秒浮点运算次数(floatingpointoperationspersecond,flops)(也可以称为浮点操作数)可达几千万。对于三维卷积操作,即使在现有高算力的图像处理单元(graphprocessingunit,gpu)上也很难满足快速处理数据的需求。再例如,三维卷积神经网络中,每个卷积层的参数量常常能够达到几万或几十万,整个网络中所有层的参数加起来,能够达到几千万,若用32位浮点数表示,需要上百兆字节的内存或缓存,现有的计算设备对复杂的三维卷积神经网络很难满足参数快速高效存贮、传输的需求。因为,三维卷积神经网络的参数量和计算量巨大,三维卷积神经网络也难以在边缘设备(例如终端设备)上使用。

业界提出针对卷积神经网络模型的压缩,以减少卷积神经网络的参数量和计算量。通常采用剪枝方法实现卷积神经网络模型的压缩。当前大部分的剪枝方法都是为普通的二维卷积神经网络设计的,部分在三维卷积神经网络的压缩方法也只是将二维卷积神经网络的压缩方法迁移到三维卷积神经网络上。

申请人发现,通过迁移二维卷积神经网络模型的压缩方法来实现三维卷积神经网络模型的压缩,不能有效地减少三维卷积神经网络的参数量与计算量。

为了进一步减少三维卷积神经网络的参数量与计算量,本申请提出一种三维卷积神经网络压缩的方案。

本申请通过在待压缩的三维卷积神经网络的三维卷积核的时间维度上对该三维卷积核进行正交变换,并对正交变换后的三维卷积核的时间维度进行剪枝,相对于现有技术,可以进一步减少三维卷积神经网络的参数量,从而可以有效减少三维卷积神经网络的计算量。

本申请可以应用于涉及视频处理、多帧图像处理的场景,包括但不限定于下面列举的例子。

例如,涉及视频处理的场景为视频动作识别。视频动作识别是视频内容理解分析的基础任务,应用非常广泛。视频动作识别是一个视频分类问题。例如,输入视频经过本申请提供的三维卷积神经网络进行处理,获得识别的视频类别,该视频类别例如跑步、打球、化妆等。这种场景下,本申请提供的三维卷积神经网络可以称为视频动作识别分类模型。

例如,涉及多帧图像处理的场景为三维医疗图像分割。三维医疗图像分割是一个在医疗图像处理领域广泛应用的问题。三维医疗图像分割是一个语义分割问题,例如,从连续多帧二维图像中分割出目标区域,该目标区域一般是特定器官或者病变区域。例如,多帧图片经过本申请提供的三维卷积神经网络进行处理,得到多帧图像中的目标分割模块。这种场景下,本申请提供的三维卷积神经网络可以称为三维图像分割模型。

下面将描述本申请提供的三维卷积神经网络压缩的方案。

三维卷积神经网络可以包括多个三维卷积核,本申请提供的神经网络压缩的方法可以适用于每个三维卷积核,且应用到每个三维卷积核上的方法是类似的。为了便于理解以及描述的简洁性,本申请实施例中以一个三维卷积核(记为第一三维卷积核)为例进行描述。

图3为本申请实施例提供的神经网络压缩的方法300的示意性流程图。该方法300例如可以由数据处理的装置执行,该装置可以是终端设备或芯片。该方法300包括如下步骤s310与s320。

s310,在待压缩的三维卷积神经网络包括的第一三维卷积核的时间维度上对该第一三维卷积核进行正交变换。该第一三维卷积核表示三维卷积神经网络包括的多个三维卷积核中的任一个。

在图2的示例中,第一三维卷积核的时间维度为t表示的维度。

在第一三维卷积核的时间维度上对该第一三维卷积核进行正交变换,表示,对该第一三维卷积核的每个时间点上的二维卷积核做正交变换。

s320,根据正交变换后的该第一三维卷积核在时间维度上的稀疏性,对该第一三维卷积核的时间维度进行剪枝,得到压缩后的三维卷积神经网络。

在三维卷积核中,时间维度上的二维卷积核(指的是,三维卷积核中各个时间点上的二维卷积核)具有相似性,如图4所示。在图4中,三维卷积核的大小为7×7×7,图4的上方示出原始三维卷积核在时间维度上的7个二维卷积核的示意图,可以看出,有些相邻的二维卷积核具有相似性(例如前3个二维卷积核)。通过在三维卷积核的时间维度上对三维卷积核进行正交变换,可以使得具有较大相似性的二维卷积核呈现出稀疏性,如图4中下方示出的正交变化后的三维卷积核在时间维度上的7个二维卷积核的示意图,可以看出,前3个二维卷积核呈现出较大的稀疏性。

在步骤s320中,可以删掉第一三维卷积核的时间维度上较为稀疏的二维卷积核,以实现对第一三维卷积核的时间维度上的剪枝。例如,在图4中,去掉前3个较为稀疏的二维卷积核,只保留方框区域内的4个二维卷积核,从而达到对三维卷积核的时间维度进行剪枝的效果。

需要说明的是,本文中提及的对三维卷积核的时间维度进行剪枝,指的是,对三维卷积核的时间维度上的二维卷积核进行剪枝。为了描述的简洁,下文中采用“对三维卷积核的时间维度进行剪枝”的描述。

可选地,在步骤s320中,获取正交变换后的第一三维卷积核在时间维度上的稀疏性;根据所述稀疏性,对该第一三维卷积核的时间维度进行剪枝。

可以采用多种方式获取正交变换后的三维卷积核在时间维度上的稀疏性。

可选地,作为一种实施方式,可以根据正交变换后的三维卷积核的l21范数,获取正交变换后的所述三维卷积核在时间维度上的稀疏性。

应理解,l21范数表示矩阵中列的欧式范数之和。

可选地,也可以采用其他可行的方式,获取正交变换后的三维卷积核在时间维度上的稀疏性。例如,统计正交变换后的三维卷积核的参数分布,1)通过设定阈值,计算参数分布小于阈值的比例,来获取正交变换后的三维卷积核在时间维度上的稀疏性;2)通过计算参数分布的均值等方式,来获取正交变换后的三维卷积核在时间维度上的稀疏性。

在步骤s320中,根据正交变换后的第一三维卷积核在时间维度上的稀疏性,对第一三维卷积核的时间维度进行剪枝,换句话说,对正交变换后的第一三维卷积核的时间维度上较为稀疏的时间维度进行剪枝。其中,要对哪些稀疏程度的时间维度进行剪枝可以根据实际情况灵活定义,本申请对此不作限定。

作为示例,将三维卷积核所有时间维度的稀疏程度的范围定义为1到10,设定阈值g(1<g≤10),在步骤s320中,将稀疏程度超过阈值g的时间维度进行剪枝。其中,阈值g的取值可以根据实际需求灵活确定。

作为示例而非限定,图5示出对正交变换后的三维卷积核的时间维度上较为稀疏的时间维度进行剪枝的示意图。图5的左边表示未进行时间维度剪枝的三维卷积核,图5的右边表示经过正交变换以及进行了时间维度的剪枝的三维卷积核,其中,进行剪枝的时间维度如图5中的指示。

上述可知,本申请实施例针对三维卷积相对于二维卷积多出的时间维度进行了设计。

应理解,本申请实施例通过在待压缩的三维卷积神经网络的三维卷积核的时间维度上对三维卷积核进行正交变换,并对正交变换后的三维卷积核中稀疏的时间维度进行剪枝,相对于现有技术,可以进一步减少三维卷积神经网络的参数量,因此,可以有效减少三维卷积神经网络的计算量。

在步骤s310中,在第一三维卷积核的时间维度上对第一三维卷积核进行正交变换,可以视为,通过正交变换,将第一三维卷积核变换到目标域上。相应地,在步骤s320中,对正交变换后的第一三维卷积核中稀疏的时间维度进行剪枝,可以视为,在目标域上,对第一三维卷积核中稀疏的时间维度进行剪枝。

在步骤s310中,可以利用一个正交矩阵,在第一三维卷积核的时间维度上对该第一三维卷积核进行正交变换。

该正交矩阵的获取方法可以有多种。

作为一种可选的实施方式,该正交矩阵通过对三维卷积核进行离散余弦变换(discretecosinetransform,dct)得到。具体操作如下。

1)将三维卷积操作按照时间维度展开得到如下公式:

其中,x表示该待压缩的三维卷积神经网络的输入数据对应的矩阵,f表示该第一三维卷积核对应的矩阵,y表示该待压缩的三维卷积神经网络的输出数据对应的矩阵,第一三维卷积核的大小为d2t,d表示该第一三维卷积核的高度与宽度,t表示该第一三维卷积核的时间维度,fi表示t维向量,c表示该第一三维卷积核的输入通道。

2)对fi进行dct变换,如下:

其中,m表示序号,cm表示dct变换后的第m个数,fi表示三维卷积核对应的矩阵中的t维向量。

等价地,dct变换也可以被写成矩阵乘法,如下:

c=sf

其中,s是t×t的dct变换矩阵。s是正交矩阵。

3)采用如下公式对三维卷积核进行正交变换:

作为另一种可选的实施方式,该正交矩阵通过学习得到,即步骤s310中对三维卷积核的正交变化是可学习的。该正交矩阵是通过目标优化函数学习得到的,该目标优化函数包括第一项与第二项,该第一项使得该正交变换可逆,该第二项使得该正交变换后的该第一三维卷积核在时间维度是稀疏的。

作为一个示例,用于学习正交矩阵的目标优化函数可以为如下目标优化函数(1)。

目标优化函数(1)

s.t.sts=i

其中,x表示该待压缩的三维卷积神经网络的输入数据对应的矩阵,t表示矩阵的转置,f表示该第一三维卷积核对应的矩阵,y表示该待压缩的三维卷积神经网络的输出数据对应的矩阵,该第一三维卷积核的大小为d2t,d表示该第一三维卷积核的高度与宽度,t表示该第一三维卷积核的时间维度,fi表示t维向量,c表示该第一三维卷积核的输入通道,s表示该正交矩阵,λ为常数,表示f范数||||f的平方,||||2,1表示l21范数。

l21范数表示矩阵中列的欧式范数之和。

在目标优化函数(1)中,为目标优化函数的第一项,为目标优化函数的第二项。其中,所述第一项能够使得变换是可逆的,这样可以实现卷积操作可以直接在正交变换后的目标域中进行,从而可以实现计算加速。第二项能够使得所述正交变换后的三维卷积核在时间维度是稀疏的,这可以实现计算加速。

在用于学习正交矩阵的目标优化函数为目标优化函数(1)的实施例中,步骤s310包括,根据求解目标优化函数(1)的结果,即正交矩阵,在第一三维卷积核的时间维度上对第一三维卷积核做正交变换;步骤s320包括,根据正交变换后的第一三维卷积核的l21范数,获取第一三维卷积核在时间维度上的稀疏性,并去除较为稀疏的时间维度,即去除冗余的时间维度,实现时间维度的剪枝。

作为示例,图6示出进行正交变换前后的三维卷积核的l21范数的示意图。图6中,横坐标表示通道数0,1,2;,纵坐标表示三维卷积核的l21范数的大小。从图6可以看出,正交变换后的三维卷积核的部分通道的l21范数非常小,例如,图6左边图中正交变换后的三维卷积核的通道数为2的通道的l21范数非常小,图6中间图中正交变换后的三维卷积核的通道数为0的通道的l21范数非常小,图6右边图中正交变换后的三维卷积核的通道数为2的通道的l21范数较小,可以直接去除对应的时间维度。

应理解,本申请实施例采用可学习的正交矩阵,在三维卷积核的时间维度对三维卷积核进行正交变换,可以使得该正交变换更适合于压缩三维卷积核的时间维度,从而可以实现精度损失较少的计算加速。

三维卷积神经网络的压缩除了对三维卷积核的时间维度进行剪枝,还可以包括对三维卷积核的通道进行剪枝,参见图2,可以对三维卷积核的输入通道c与输出通道n进行剪枝。通常,重要的通道可以通过最小化三维卷积核的通道的函数的一范数而选择出来。

作为示例,用于对三维卷积核的通道进行剪枝的目标优化函数可以为如下目标优化函数(2)。

目标优化函数(2)

其中,x表示该待压缩的三维卷积神经网络的输入数据对应的矩阵,t表示矩阵的转置,f表示该第一三维卷积核对应的矩阵,y表示该待压缩的三维卷积神经网络的输出数据对应的矩阵,c表示该第一三维卷积核的输入通道,β表示该第一三维卷积核的通道的函数,γ为常数,表示f范数||||f的平方,||||1表示一范数。

例如,βi表示三维卷积核的通道i的指示函数,βi的取值可以1或0,取1表示保留通道i,取0表示去除通道i,β是βi构成的数组。

可选地,在图3所示实施例中,该方法还包括:对第一三维卷积核的通道进行剪枝,以获得压缩后的三维卷积神经网络。

对三维卷积核的通道进行剪枝为现有技术,本文对此不作赘述。

可选地,用于学习正交矩阵的目标优化函数可以通过结合上述目标优化函数(1)与目标优化函数(2)得到。也就是说,该目标优化函数中除了包括上述的第二项与第一项,还可以包括第三项,该第三项为第一三维卷积核的通道的函数的一范数。

作为一个示例,用于学习正交矩阵的目标优化函数可以为如下目标优化函数(3)。

目标优化函数(3)

s.t.sts=i

其中,x表示该待压缩的三维卷积神经网络的输入数据对应的矩阵,t表示矩阵的转置,f表示该第一三维卷积核对应的矩阵,y表示该待压缩的三维卷积神经网络的输出数据对应的矩阵,该第一三维卷积核的大小为d2t,d表示该第一三维卷积核的高度与宽度,t表示该第一三维卷积核的时间维度,fi表示t维向量,c表示该第一三维卷积核的输入通道,s表示该正交矩阵,β表示该第一三维卷积核的通道的函数,γ与λ为常数,表示f范数||||f的平方,||||1表示一范数,||||2,1表示l21范数。||||2,1表示矩阵中列的欧式范数之和。

在目标优化函数(3)中,为该目标优化函数的第一项,为该目标优化函数的第二项,γ||β||1为该目标优化函数的第三项。其中,第一项能够使得变换是可逆的,这样可以实现卷积操作可以直接在正交变换后的目标域中进行,从而可以实现计算加速。第二项能够使得所述正交变换后的三维卷积核在时间维度是稀疏的,这可以实现计算加速。

应理解,dct变换是基于对多帧图像或视频的先验假设,这种先验假设不一定会适合于三维卷积核。在本实施例中,用于对三维卷积核进行正交变换的正交矩阵是通过目标优化函数(如上文中的目标优化函数(1)或目标优化函数(3))学习到的,即本实施例提供了可学习的正交变换,这样使得对三维卷积核的正交变换更加适合于压缩三维卷积核的时间维度,因此可以实现精度损失较小的计算加速。

在用于学习正交矩阵的目标优化函数为目标优化函数(3)的实施例中,步骤s310包括,根据求解目标优化函数(3)的结果,即正交矩阵,在第一三维卷积核的时间维度上对该第一三维卷积核做正交变换;步骤s320包括,根据正交变换后的第一三维卷积核的l21范数,获取第一三维卷积核在时间维度上的稀疏性,并去除较为稀疏的时间维度,即去除冗余的时间维度以及去除冗余的通道,实现时间维度的剪枝以及通道的剪枝。

图6示出进行正交变换前后的三维卷积核l21范数的示意图。从图6可以看出,正交变换后的三维卷积核的部分通道的l21范数非常小,可以直接去除。

基于上述描述,本申请实施例通过在待压缩的三维卷积神经网络的三维卷积核的时间维度上对三维卷积核进行正交变换,并对正交变换后的三维卷积核中稀疏的时间维度进行剪枝,相对于现有技术,可以进一步减少三维卷积神经网络的参数量,进而可以有效减少三维卷积神经网络的计算量。

如前文描述,本申请可以应用于涉及视频处理、多帧图像处理的场景。下文描述本申请应用于处理视频或多帧图像处理的方案。

图7为本申请实施例提供的数据处理的方法700的示意性流程图。该方法700可以由数据处理的装置执行。该装置可以终端设备或芯片。该方法700包括步骤s710与s720。

s710,将待处理的三维图像数据输入压缩后的三维卷积神经网络。

s720,利用该压缩后的三维卷积神经网络对该三维图像数据进行处理,获得该三维图像数据的处理结果。

其中,该压缩后的三维卷积神经网络是通过上文实施例的方法300得到的,参加上文中的步骤s310与步骤s320,这里不再赘述。

其中,在对待压缩的三维卷积神经网络的压缩过程中,待压缩的三维卷积神经网络的输入数据为该三维图像数据的训练样本。例如,在上文的目标优化函数(1)、(2)与(3)中,x表示该待压缩的三维卷积神经网络的输入数据对应的矩阵,其中,该待压缩的三维卷积神经网络的输入数据为该三维图像数据的训练样本。

可选地,该三维图像数据为视频数据;其中,在步骤s720中,利用该压缩后的三维卷积神经网络对该视频数据进行动作识别处理,获得该视频数据的动作识别结果。

其中,在对待压缩的三维卷积神经网络的压缩过程中,待压缩的三维卷积神经网络的输入数据为该视频数据的训练样本。

可选地,该三维图像数据为多帧图像数据,其中,在步骤s720中,利用该压缩后的三维卷积神经网络对该多帧图像数据进行目标分割处理,获得该多帧图像数据的目标分割结果。

其中,在对待压缩的三维卷积神经网络的压缩过程中,待压缩的三维卷积神经网络的输入数据为该多帧图像数据的训练样本。

可选地,在图7所示实施例中,步骤s710包括:采用该正交矩阵,对该三维图像数据进行正交变换,得到正交变换后的三维图像数据;将该正交变换后的三维图像数据输入该压缩后的三维卷积神经网络。

其中,该正交矩阵与上文实施例中步骤s320中对待压缩的三维卷积神经网络的第一三维卷积核进行正交变换时所使用的正交矩阵是一致的。换句话说,对该三维图像数据进行的正交变换的操作与上文实施例中步骤s320中对第一三维卷积核进行的正交变换的操作一致。

例如,在步骤s310中,利用可学习的正交矩阵,将第一三维卷积核正交变换到目标域上;在步骤s320中,对目标域上的第一三维卷积核的稀疏的时间维度进行剪枝;在步骤s710中,利用该正交矩阵,将待输入的三维图像数据也变换到目标域上;在步骤s720中,在该目标域上,对三维图像数据与压缩后的三维卷积神经网络进行卷积操作。

应理解,直接在正交变换后的目标域中进行卷积操作,可以实现计算加速。

通常,三维卷积操作可以转换为矩阵相乘运算。

例如,在步骤s720中,将三维图像数据转换为矩阵1,将压缩后的三维卷积神经网络的三维卷积核转换为矩阵2,将矩阵1与矩阵2进行相乘,获得矩阵3,即矩阵3为三维图像数据的处理结果。

将三维卷积操作转换为矩阵相乘运算,为现有技术,本文对此不作赘述。

本申请实施例通过在正交变换后的目标域中进行卷积操作,从而可以实现计算加速。

将本申请在视频动作识别的任务上进行测试实现,相比现有的剪枝方法、dct变换等方法,本申请提出的神经网络压缩的方法在网络加速相同的情况下,错误率增益更小,准确率更高。如表1所示。

表1:视频动作识别错误率增益(%)

从表1可知,本申请实施例提供的三维卷积神经网络压缩的方法,可以在保持三维卷积神经网络的模型精度的情况下,提升模型的运行效率。

因此,本申请实施例提供的三维卷积神经网络压缩的方法,相对于现有技术,可以进一步对三维卷积神经网络进行压缩,同时能够达到微小的精度损失。

应理解,应用本申请压缩得到的三维卷积神经网络到三维图像处理场景中,可以提高图像处理的效率。

图8为根据本申请实施例的数据处理的方法的示意性流程图。如图8所示,要进行压缩的三维卷积神经网络的三维卷积核的大小为d×d×t,其中,d表示宽度与高度,t表示深度(即时间维度)。该三维卷积核的输入通道为c,输出通道为n。在图8中,要处理的输入特征图的大小为w×h×t,其中,w表示宽度,h表示高度,t表示深度(即时间维度),该输入特征图的通道为c(即与三维卷积核的输入通道c一致)。

如图8所示,数据处理的流程可以分为如下三个阶段。

正交变换阶段,包括步骤①。

步骤①,使用一个预训练的三维卷积神经网络(如图8中所示的三维卷积核表示的三维卷积神经网络),在三维卷积核的时间维度上做可学习的正交变换,将三维卷积核变换到目标域上。

例如,步骤①对应上面实施例中的步骤s310,具体描述参见上文,这里不再赘述。

剪枝阶段,包括步骤②。

步骤②,对正交变换后的三维卷积核的稀疏的时间维度进行剪枝。换言之,对目标域上的三维卷积核的稀疏的时间维度进行剪枝。进行剪枝的时间维度见图8中的箭头指示。

例如,步骤②对应上面实施例中的步骤s320,具体描述参见上文,这里不再赘述。

卷积计算阶段,包括步骤⑥。

步骤⑥,对输入特征图与时间维度剪枝后的三维卷积核进行卷积操作,得到输出特征图。

卷积计算阶段可以对应上面实施例中的步骤s710和步骤s720,具体描述参见上文,这里不再赘述

可选地,卷积计算阶段还可以包括步骤⑤。

步骤⑤,在时间维度上,对输入特征图进行可学习的正交变换,将输入特征图变换到目标域上。

可选地,在步骤⑤之后,可以对目标域上的输入特征图的时间维度进行剪枝,如图8所示。

可选地,在包括步骤⑤的实施例中,在步骤⑥中,可以在目标域上,对输入特征图与时间维度剪枝后的三维卷积核进行卷积操作,得到输出特征图。

可选地,在步骤⑥中,可以将三维卷积操作转换为矩阵相乘操作。

例如,卷积计算阶段,包括步骤④、步骤③与步骤⑥。

步骤④,将输入特征图转换为矩阵(记为矩阵1)。

步骤③,将剪枝后的三维卷积核转换为矩阵(记为矩阵2)。

步骤⑥,将矩阵1与矩阵2进行相乘(即执行输入特征图与时间维度剪枝后的三维卷积核的卷积操作),获得矩阵3。应理解,矩阵3为输出特征图对应的矩阵。

步骤④与步骤⑤没有执行顺序的限制。

如图8所示,在卷积计算阶段还可以执行步骤⑧。

步骤⑧,将矩阵3变换为特征图,即输出特征图。如图8所示,输出特征图的大小为w’×h’×t’,其中,w’表示宽度,h’表示高度,t’表示深度(即时间维度),该输出特征图的通道为n(基于三维卷积核的输出通道n一致)。

基于上述描述,本申请实施例通过在待压缩的三维卷积神经网络的三维卷积核的时间维度上对三维卷积核进行正交变换,并对正交变换后的三维卷积核中稀疏的时间维度进行剪枝,相对于现有技术,可以进一步减少三维卷积神经网络的参数量,进而可以有效减少三维卷积神经网络的计算量。

本文中描述的各个实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本申请的保护范围中。

上文描述了本申请提供的方法实施例,下文将描述本申请提供的装置实施例。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。

本申请实施例提供的三维卷积神经网络压缩的方法可以应用于相关设备的计算节点上,例如,通过对该计算节点进行软件或硬件的改造,以提升神经网络模型的运行效率。

如图9所示,本申请实施例提供一种神经网络压缩的装置900。该装置900用于执行上文实施例的方法300。如图9所示,该装置900包括正交变换单元910与剪枝单元920。

正交变换单元910,在待压缩的三维卷积神经网络包括的第一三维卷积核的时间维度上对该第一三维卷积核进行正交变换。

剪枝单元920,用于根据正交变换后的该第一三维卷积核在时间维度上的稀疏性,对该第一三维卷积核的时间维度进行剪枝,得到压缩后的三维卷积神经网络。

例如,正交变换单元910用于执行上文实施例中的步骤s310。剪枝单元920用于执行上文实施例中的步骤s320。具体参见上文描述,这里不再赘述。

该装置900可以是终端设备或芯片。

该装置900可以部署在相关设备的计算节点上,通过软件或硬件改造,能够提升神经网络模型的运行速度。例如,该装置900可以为计算节点上的三维卷积神经网络的压缩模块。

如图10所示,本申请实施例还提供一种数据处理的装置1000。该装置1000可以用于执行上文实施例中的方法700。如图10所示,该装置1000包括输入单元1010与处理单元1020。

输入单元1010,用于将待处理的三维图像数据输入压缩后的三维卷积神经网络。

处理单1020元,用于利用该压缩后的三维卷积神经网络对该三维图像数据进行处理,获得该三维图像数据的处理结果。

其中,该压缩后的三维卷积神经网络是进行如下操作得到的:在待压缩的三维卷积神经网络包括的第一三维卷积核的时间维度上对该第一三维卷积核进行正交变换;根据正交变换后的该第一三维卷积核在时间维度上的稀疏性,对该第一三维卷积核的时间维度进行剪枝。

其中,在对待压缩的三维卷积神经网络的压缩过程中,待压缩的三维卷积神经网络的输入数据为该三维图像数据的训练样本。

例如,输入单元1010用于执行上文实施例中的步骤s710。处理单元1020用于执行上文实施例中的步骤s720。具体参见上文描述,这里不再赘述。

可选地,该三维图像数据为视频数据;其中,该处理单元1020用于,利用该压缩后的三维卷积神经网络对该视频数据进行动作识别处理,获得该视频数据的动作识别结果。

可选地,该三维图像数据为多帧图像数据,其中,该处理单元1020用于,利用该压缩后的三维卷积神经网络对该多帧图像数据进行目标分割处理,获得该多帧图像数据的目标分割结果。

可选地,该输入单元1010用于:采用该正交矩阵,对该三维图像数据进行正交变换,得到正交变换后的三维图像数据;将该正交变换后的三维图像数据输入该压缩后的三维卷积神经网络。

如图11所示,本申请实施例还提供一种数据处理的装置1100。该装置1100包括处理器1110,处理器1110与存储器1120耦合,存储器1120用于存储计算机程序或指令,处理器1110用于执行存储器1120存储的计算机程序或指令,使得上文方法实施例中的方法被执行。

可选地,如图11所示,该装置1100还可以包括存储器1120。

可选地,如图11所示,该装置1100还可以包括数据接口1130,数据接口1130用于与外界进行数据的传输。

可选地,作为一种方案,该装置1100用于实现上文实施例中的方法300。这种情形下,该装置1100可以称为神经网络压缩的装置。

可选地,作为另一种方案,该装置1100用于实现上文实施例中的方法700。

本申请实施例还提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行上述实施例的方法。

本申请实施例还提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述实施例的方法。

本申请实施例还提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述实施例的方法。

可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行上述实施例中的方法。

本申请实施例还提供一种电子设备,该电子设备包括上述实施例中的装置900和/或装置1000。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(usbflashdisk,ufd)(ufd也可以简称为u盘或者优盘)、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

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