一种高效的转置卷积计算方法
文献发布时间:2023-06-19 10:35:20
技术领域
本申请涉及数据处理技术领域,尤其涉及一种高效的转置卷积计算方法。
背景技术
转置卷积是一种特殊的卷积,现有技术中,在用硬件加速器执行转置卷积运算之前,通常会先按照一定比例进行补零操作,来扩展输入特征图的尺寸,然后再进行卷积运算。
如图1所示,原先的输入特征图数据中相应位置被补入大量的零,白格为补入的零,扩展到尺寸相对较大的新特征图数据,然后通过滑动窗口在新特征图数据上按照设置的滑动步长进行数据提取,被提取的数据再与旋转后的转置卷积核进行相乘再求和,滑动窗口的尺寸与转置卷积核大小一致,被提取的数据为滑动窗口覆盖的数据,当滑动窗口滑过新特征图所有数据后,便得到转置卷积的计算结果。
现有方案通常需要在原输入特征图中插入大量的零,而这些零又都参与实际的运算,使得在处理数据时,增加了大量不必要的运算操作,降低对有效数据处理的速度,从而降低转置卷积的运算效率。
发明内容
本申请提供了一种高效的转置卷积计算方法,以解决转置卷积运算效率低的问题。
一种高效的转置卷积计算方法,包括:
基于预设的转置卷积核的尺寸参数、转置卷积的步长和转换阶数确定转置卷积总体架构;
将原特征图和所述转置卷积核输入所述转置卷积总体架构,输出转置卷积计算结果;
其中,所述转置卷积总体架构包括第一提取转换模块、转置卷积计算模块和第二转换输出模块;
所述第一提取转换模块包括提取单元、第一转换单元和第二转换单元,所述提取单元根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置滑动窗口的尺寸和滑动窗口的步长,然后根据所述滑动窗口的尺寸和所述滑动窗口的步长,利用滑动窗口机制在原特征图上提取多个特征图子图;所述第一转换单元根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第一转换矩阵,根据所述第一转换矩阵对所述转置卷积核进行转换,获得第二转置卷积核;所述第二转换单元根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第二转换矩阵,根据所述第二转换矩阵对所述特征图子图进行转换,获得第二特征图子矩阵;
所述转置卷积计算模块被配置为将所述第二特征图子矩阵与第二转置卷积核上的元素一一对应相乘,获得中间子矩阵;
所述第二转换输出模块被配置为包括第三转换单元和输出单元,所述第三转换单元根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第三转换矩阵,根据所述第三转换矩阵对所述中间子矩阵进行转换,获得输出子矩阵;所述输出单元将所述输出子矩阵依次排列成输出特征图,输出转置卷积计算结果。
具体地,所述根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第一转换矩阵,具体为:
根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第一转换矩阵的尺寸;
根据所述第一转换矩阵的尺寸设置所述第一转换矩阵;
所述根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第二转换矩阵,具体为:
根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第二转换矩阵的尺寸;
根据所述第二转换矩阵的尺寸设置所述第二转换矩阵;
所述根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第三转换矩阵,具体为:
根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第三转换矩阵的尺寸;
根据所述第三转换矩阵的尺寸设置所述第三转换矩阵。
具体地,根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数,通过计算公式获取各项参数,其中计算公式为:
E
O
S
其中,k为所述转置卷积核的尺寸参数,s为所述转置卷积的步长,r为所述转换阶数,k、s和r均为正整数,
根据所述各项参数,确定所述第一转换矩阵的尺寸、所述第二转换矩阵的尺寸、所述第三转换矩阵的尺寸、所述滑动窗口的尺寸和所述滑动窗口的步长,
其中,
所述第一转换矩阵的尺寸为E
所述第二转换矩阵的尺寸为I
所述第三转换矩阵的尺寸为E
在一维计算形式中,所述滑动窗口的尺寸为1×I
在二维计算形式中,所述滑动窗口的尺寸为I
所述滑动窗口的步长为S
具体地,所述根据所述第一转换矩阵对所述转置卷积核进行转换,获得第二转置卷积核,具体分为两种计算形式:一维计算形式和二维计算形式;
对于一维计算形式,具体为:将所述第一转换矩阵和所述转置卷积核依次相乘,得到所述第二转置卷积核;
对于二维计算形式,具体为:将所述第一转换矩阵、所述转置卷积核和所述第一转换矩阵的转置矩阵依次相乘,得到所述第二转置卷积核。
具体地,根据所述第二转换矩阵对所述特征图子图进行转换,获得第二特征图子矩阵,具体分为两种计算形式:一维计算形式和二维计算形式;
对于一维计算形式,具体为:将所述第二转换矩阵的转置矩阵和所述特征图子图依次相乘,得到所述第二特征图子矩阵;
对于二维计算形式,具体为:将所述第二转换矩阵的转置矩阵、所述特征图子图和所述第二转换矩阵依次相乘,得到所述第二特征图子矩阵。
具体地,所述根据所述第三转换矩阵对所述中间子矩阵进行转换,获得输出子矩阵,具体分为两种计算形式:一维计算形式和二维计算形式;
对于一维计算形式,具体为:将所述第三转换矩阵的转置矩阵和所述中间子矩阵依次相乘,得到所述输出子矩阵;
对于二维计算形式,具体为:将所述第三转换矩阵的转置矩阵、所述中间子矩阵和所述第三转换矩阵依次相乘,得到所述输出子矩阵。
本申请通过预设的转置卷积核的尺寸参数、转置卷积的步长和转换阶数,设置第一转换矩阵、第二转换矩阵和第三转换矩阵,进而对转置卷积核、通过滑动窗口提取的特征图子图和运算过程中获得的中间子矩阵进行转换,从而可以实现在不需要补零的操作下,只需要对原特征图进行转置卷积运算;并且提出转换阶数的设置,扩大了适用范围,进一步降低计算复杂度。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请现有转置卷积原理示意图;
图2为本申请一种高效的转置卷积计算方法的流程图;
图3为本申请实施例公开的针对T
图4为本申请实施例公开的针对T
图5为本申请实施例公开的针对T
具体实施方式
参见图2,为本申请一种高效的转置卷积计算方法的流程图,该方法包括如下步骤:
基于预设的转置卷积核的尺寸参数、转置卷积的步长和转换阶数确定转置卷积总体架构;
将原特征图和所述转置卷积核输入所述转置卷积总体架构,输出转置卷积计算结果;
其中,所述转置卷积总体架构包括第一提取转换模块、转置卷积计算模块和第二转换输出模块;
所述第一提取转换模块包括提取单元、第一转换单元和第二转换单元,
所述提取单元根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置滑动窗口的尺寸和滑动窗口的步长,然后根据所述滑动窗口的尺寸和所述滑动窗口的步长,利用滑动窗口机制在原特征图上提取多个特征图子图;
所述第一转换单元根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第一转换矩阵的尺寸,根据所述第一转换矩阵的尺寸设置所述第一转换矩阵,其中第一转换矩阵中元素的值可以根据实际自行设置,根据所述第一转换矩阵对所述转置卷积核进行转换,获得第二转置卷积核,具体分为两种计算形式:一维计算形式和二维计算形式;
对于一维计算形式,具体为:将所述第一转换矩阵和所述转置卷积核依次相乘,得到所述第二转置卷积核;
对于二维计算形式,具体为:将所述第一转换矩阵、所述转置卷积核和所述第一转换矩阵的转置矩阵依次相乘,得到所述第二转置卷积核。
所述第二转换单元根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第二转换矩阵的尺寸,根据所述第二转换矩阵的尺寸设置所述第二转换矩阵,其中第二转换矩阵中元素的值可以根据实际自行设置,根据所述第二转换矩阵对所述特征图子图进行转换,获得第二特征图子矩阵,具体分为两种计算形式:一维计算形式和二维计算形式;
对于一维计算形式,具体为:将所述第二转换矩阵的转置矩阵和所述特征图子图依次相乘,得到所述第二特征图子矩阵;
对于二维计算形式,具体为:将所述第二转换矩阵的转置矩阵、所述特征图子图和所述第二转换矩阵依次相乘,得到所述第二特征图子矩阵。
所述转置卷积计算模块被配置为将所述第二特征图子矩阵与第二转置卷积核上的元素一一对应相乘,获得中间子矩阵;
所述第二转置卷积核与所述第二特征图子矩阵的尺寸均一致,即第二转置卷积核与所述第二特征图子矩阵为行数和列数相同的矩阵,如均为E
所述第二转换输出模块被配置为包括第三转换单元和输出单元,
所述第三转换单元根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数设置第三转换矩阵的尺寸,根据所述第三转换矩阵的尺寸设置所述第三转换矩阵,其中第三转换矩阵中元素的值可以根据实际自行设置,根据所述第三转换矩阵对所述中间子矩阵进行转换,获得输出子矩阵,具体分为两种计算形式:一维计算形式和二维计算形式;
对于一维计算形式,具体为:将所述第三转换矩阵的转置矩阵和所述中间子矩阵依次相乘,得到所述输出子矩阵;
对于二维计算形式,具体为:将所述第三转换矩阵的转置矩阵、所述中间子矩阵和所述第三转换矩阵依次相乘,得到所述输出子矩阵;
所述输出单元将所述输出子矩阵依次排列成输出特征图,输出转置卷积计算结果。
具体地,根据所述转置卷积核的尺寸参数、所述转置卷积的步长和所述转换阶数,通过计算公式获取各项参数,其中计算公式为:
E
O
S
其中,k为所述转置卷积核的尺寸参数,s为所述转置卷积的步长,r为所述转换阶数,k、s和r均为正整数,
根据所述各项参数,确定所述第一转换矩阵的尺寸、所述第二转换矩阵的尺寸、所述第三转换矩阵的尺寸、所述滑动窗口的尺寸和所述滑动窗口的步长,
其中,
所述第一转换矩阵的尺寸为E
所述第二转换矩阵的尺寸为I
所述第三转换矩阵的尺寸为E
在一维计算形式中,所述滑动窗口的尺寸为1×I
在二维计算形式中,所述滑动窗口的尺寸为I
所述滑动窗口的步长为S
具体地,根据所述滑动窗口的尺寸和所述滑动窗口的步长,利用滑动窗口机制在原特征图上提取多个特征图子图,以二维计算形式为例,按照滑动窗口的尺寸在原特征图上提取相同尺寸的特征图子图,如滑动窗口的尺寸为I
整个转置卷积计算过程,分别对每一个特征图子图进行计算,最后将得到的输出子矩阵按照次序进行排列,进而获得输出特征图,得到转置卷积计算结果。
本申请一种高效的转置卷积计算方法,可以用公式表达,公式有两种计算形式,一维计算形式和二维计算形式。
一维计算形式表示为T
Y=A
其中,Y为输出子矩阵,其尺寸为O
堆叠一维计算形式,可以得到二维计算形式,表示为
Y=A
其中,Y为输出子矩阵,其尺寸为O
对于以上两种计算形式的相关参数I
E
O
S
其中,k为所述转置卷积核的大小,s为所述转置卷积的步长,r为所述转换阶数,k、s和r均为正整数,
针对不同的运算需求,上述两种计算形式可以通过控制k、s和r的大小,来控制I
需要说明的是,在转置卷积的计算过程中,本技术领域人员能够按照一定的转换规则,使用转换矩阵对转置卷积计算过程中的相关矩阵进行转换,其转换规则是本技术领域人员根据实际所需预先设置,所以在第一转换矩阵的尺寸、第二转换矩阵的尺寸和第三转换矩阵的尺寸确定的前提下,本领域技术人员可以自行设置第一转换矩阵、第二转换矩阵和第三转换矩阵中所有元素的值。
作为实施例,若转置卷积的步长为2(s=2),转置卷积核的尺寸为1×3,(k=3),转换阶数为1(r=1),采用一维计算形式,即针对T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为3×3(k=3),转换阶数为1(r=1),采用二维计算形式,即针对T
实验表明,T
T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为1×3(k=3),转换阶数为2(r=2),采用一维计算形式,即针对T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为3×3(k=3),转换阶数为2(r=2),采用二维计算形式,即针对T
实验表明,T
T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为1×3(k=3),转换阶数为3(r=3),采用一维计算形式,即针对T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为3×3(k=3),转换阶数为3(r=3),采用二维计算形式,即针对T
实验表明,T
T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为1×4(k=4),转换阶数为1(r=1),采用一维计算形式,即针对T
参见图3,为本申请实施例公开的针对T
实验表明,T
T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为1×4(k=4),转换阶数为2(r=2),采用一维计算形式,即针对T
参见图4,为本申请实施例公开的针对T
实验表明,T
T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为1×4(k=4),转换阶数为3(r=3),采用一维计算形式,即针对T
参见图5,为本申请实施例公开的针对T
实验表明,T
T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为1×5(k=5),转换阶数为1(r=1),采用一维计算形式,即针对T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为5×5(k=5),转换阶数为1(r=1),采用二维计算形式,即针对T
实验表明,T
T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为1×5(k=5),转换阶数为2(r=2),采用一维计算形式,即针对T
若转置卷积的步长为2(s=2),转置卷积核的尺寸为5×5(k=5),转换阶数为2(r=2),采用二维计算形式,即针对T
实验表明,T
T
若转置卷积的步长为3(s=3),转置卷积核的尺寸为1×5(k=5),转换阶数为1(r=1),采用一维计算形式,即针对T
若转置卷积的步长为3(s=3),转置卷积核的尺寸为5×5(k=5),转换阶数为1(r=1),采用二维计算形式,即针对T
实验表明,T
T
若转置卷积的步长为3(s=3),转置卷积核的尺寸为1×5(k=5),转换阶数为2(r=2),采用一维计算形式,即针对T
若转置卷积的步长为3(s=3),转置卷积核的尺寸为5×5(k=5),转换阶数为2(r=2),采用二维计算形式,即针对T
实验表明,T
T
由以上几个例子可以看出,在转置卷积的步长s和转置卷积核的尺寸k不变,以及采用的计算形式一样的情况下,随着转换阶数r的增大,计算效率也会逐渐增大。
本申请通过预设的转置卷积核的尺寸、转置卷积的步长和转换阶数,设置第一转换矩阵、第二转换矩阵和第三转换矩阵,进而对转置卷积核、通过滑动窗口提取的特征图子图和运算过程中获得的中间子矩阵进行转换,从而可以实现在不需要补零的操作下,只需要对原特征图进行转置卷积运算;并且提出转换阶数的设置,扩大了适用范围,进一步降低计算复杂度。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。
- 一种高效的转置卷积计算方法
- 一种基于片上网络的高效率矩阵转置簇以及转置方法