一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种反卷积处理方法、装置、电子设备及介质与流程

2022-06-05 14:42:30 来源:中国专利 TAG:


1.本发明涉及卷积神经网络技术领域,尤其涉及一种反卷积处理方法、装置、电子设备及介质。


背景技术:

2.深度神经网络(dnn)是深度学习的主要构成部分,随着深度学习的发展,目前dnn已经在多个领域展现出十分出色的成果。反卷积是dnn中的上采样算子,上采样的主要目的是放大原图像,使图像可以显示在更高分辨率的显示设备上,被广泛使用于超分辨率重建、生成对抗网络(gan)、目标检测等算法中。许多专用的神经网络加速器被设计出来用来加速卷积、矩阵乘等算子并取得了不错的效果,然而对于反卷积却没有相应的加速效果,一般的反卷积计算需要首先对输入特征图片进行插值补零预处理,扩大输入特征图片的尺寸,然后再转化为卷积计算,这种处理方式会导致很多的冗余操作,导致计算速度慢,因此往往反卷积会成为神经网络计算的瓶颈。
3.在专利号为cn 209657350 u的方案中,为反卷积专门设计了一种硬件加速电路,采用的计算方式依然是对原始输入特征图进行插值补零扩展的方式,通过输入缓冲模块、权重缓冲模块、输入扩展模块加载输入,对输入进行扩展,配置脉动乘加模块用于计算,通过输出缓冲模块加载输出,控制模块用于控制整个电路,该技术存在以下明显的不足:
4.(1)其本质上还是进行了很多冗余的乘加操作,造成了带宽的浪费和计算效率的降低;
5.(2)与现有的卷积加速单元不兼容,需要为反卷积单独设计专用的硬件加速电路。


技术实现要素:

6.技术目的:针对上述技术问题,本发明公开了一种反卷积处理方法、装置、电子设备及介质,解决了反卷积计算速度慢的问题,可广泛应用于深度学习的各种场景中。
7.技术方案:为实现上述技术目的,本发明采用了如下技术方案:一种反卷积处理方法,包括步骤:
8.将输入特征图片分别与各个经预处理获得的子卷积核进行卷积计算,得到与子卷积核数量对应的中间特征图片,所述子卷积核通过对原始的反卷积核进行离线重排预处理获得;
9.将所述中间特征图片进行在线重排,得到输出特征图片。
10.优选地,对原始的反卷积核进行离线重排预处理,包括步骤:
11.1)将原始的反卷积核旋转180
°

12.2)根据原始的反卷积核的尺寸kd及反卷积的步长sd,判断是否满足补零条件,若满足,则对旋转后的反卷积核进行补零操作,若不满足,则不进行补零操作;
13.3)从步骤2)得到的反卷积核中取出权重元素,根据子卷积核的数量和子卷积核的尺寸kc对权重元素重新排布得到多个子卷积核;所述子卷积核的数量根据反卷积的步长sd确定,子卷积核的尺寸kc根据原始的反卷积核的尺寸kd及反卷积的步长sd确定。
14.优选地,所述补零条件为:k
d mod sd!=0;补零操作中,在旋转后的反卷积核的左侧补充m列零、上侧补充m行零,m=s
d k
c-kd。
15.优选地,所述子卷积核的尺寸kc满足关系式:满足关系式:代表向上取整运算。
16.优选地,所述步骤3)中对权重元素重新排布得到多个子卷积核,包括:
17.根据子卷积核的尺寸kc,在步骤2)得到的反卷积核中,选择sd×
sd个权重元素,将所选的各个权重元素作为每个子卷积核的基准原点;
18.分别以各个基准原点为起点,在水平方向和垂直方向上均每隔sd个位置取权重元素,将对应各个基准原点取出的值相邻排布到同一个子卷积核中,得到所述多个子卷积核。
19.优选地,将所述中间特征图片进行在线重排,包括:
20.从每个中间特征图片的相同位置取值,将相同位置对应的值相邻排布在同一个二维平面上,重复以上过程,直到所有中间特征图片上的值均排布到所述二维平面上为止,得到输出特征图片。
21.优选地,从中间特征图片中取值前,对中间特征图片进行裁剪预处理。
22.优选地,将输入特征图片分别与各个子卷积核进行卷积计算时,使用卷积加速器。
23.一种反卷积处理装置,包括:
24.离线重排模块,用于对原始的反卷积核进行离线重排,得到多个子卷积核;
25.卷积处理模块,用于将输入特征图片分别与各个子卷积核进行卷积计算,得到与子卷积核数量对应的中间特征图片;
26.在线重排模块,用于将中间特征图片进行在线重排,得到输出特征图片。
27.优选地,所述离线重排模块包括:
28.旋转模块,用于将原始的反卷积核旋转180
°

29.补零模块,用于根据原始的反卷积核的尺寸kd及反卷积的步长sd,判断是否满足补零条件,若满足,则对旋转后的反卷积核进行补零操作,若不满足,则不进行补零操作;
30.重排模块,用于从补零模块中得到的反卷积核中取出权重元素,根据子卷积核的数量和子卷积核的尺寸kc对权重元素重新排布得到多个子卷积核;所述子卷积核的数量根据反卷积的步长sd确定,子卷积核的尺寸kc根据原始的反卷积核的尺寸kd及反卷积的步长sd确定。
31.优选地,所述重排模块,包括:
32.基准原点选取模块,用于根据子卷积核的尺寸kc,在经补零模块得到的反卷积核中,选择sd×
sd个权重元素,将所选的各个权重元素作为每个子卷积核的基准原点;
33.排布模块,用于分别以各个基准原点为起点,在水平方向和垂直方向上均每隔sd个位置取权重元素,将对应各个基准原点取出的权重元素相邻排布到同一个子卷积核中,得到所述多个子卷积核。
34.一种电子设备,包括处理单元和存储单元,存储有计算机可执行指令,所述指令在被所述处理单元执行时用于实现前述的任一项所述反卷积处理方法。
35.一种介质,存储有计算机可执行指令,所述指令在被处理单元执行时用于实现前述的任一项所述反卷积处理方法。
36.有益效果:与现有技术相比,本发明具有如下技术效果:
37.本发明通过将原始的反卷积核进行离线重排预处理,拆成多个子卷积核,将输入特征图片与子卷积核进行卷积计算,得到中间特征图片,最后再通过对中间特征图片进行在线数据重排得到反卷积结果。
38.本发明方法可用于图像数据、语音数据或文本数据等的反卷积处理,能够克服反卷积处理计算速度慢的问题,且处理结果和原始的反卷积计算得到的输出特征图片完全一致,没有任何的计算精度误差,可用于图像超分辨率重建、生成对抗网络、目标检测、语音识别、文本分类等多种深度学习应用场景。
附图说明
39.图1为本发明实施例一中的反卷积处理方法的流程图;
40.图2以二维卷积核为例,将原始反卷积核拆解成多个子卷积核的示意图;
41.图3将图2得到的二维子卷积核用于对输入特征图片进行卷积计算后的在线重排的示意图;
42.图4为本发明实施例二中的反卷积处理装置的结构示意图。
具体实施方式
43.下面结合附图对本发明做详细的说明。
44.为了更好的说明本发明实施例所提供的方案,首先对本发明中涉及到的技术用语,作简单的介绍说明。
45.(1)卷积核/反卷积核:卷积/反卷积运算中涉及的概念,在本发明中,为方便描述,将卷积核/反卷积核中的每个权重参数称为“权重元素”,如附图2中所示反卷积核和卷积核中的每个最小方格,即对应每个权重元素。
46.一般从长、宽、深三个维度来表示每个卷积核/反卷积核,在神经网络的每个卷积层/反卷积层中,可包括一个以上的卷积核/反卷积核。通常仅用长
×
宽表示一个卷积核的大小。
47.(2)反卷积的输入通道、输出通道:
48.反卷积的输入通道数取决于每个反卷积核的深度,而反卷积核的深度与输入特征图片的张数相同,如灰度图用1张特征图片表示,rgb图用3张特征图片表示。
49.反卷积的输出通道数取决于反卷积核的个数,一个反卷积核对应一个输出通道。
50.(3)卷积的输入通道、输出通道:
51.卷积的输入通道数取决于卷积核的深度,卷积的输出通道数取决于卷积核的数量,每个卷积核对应一个输出通道。
52.(4)子卷积:本发明中提到的子卷积,表示卷积,即正向卷积。
53.(5)特征图片:本发明中用“值”表示特征图片中的每个数值,如附图3中所示输入特征图片或输出特征图片中的每个最小方格,即对应一个值。特征图片可以是经过预处理的图像数据、语音数据或文本数据,或者是经过卷积神经网络中的卷积层或反卷积层等处理后输出的数据。
54.实施例一
55.如图1所示,本实施例提供一种反卷积处理方法,包括步骤:
56.步骤1,将输入特征图片分别与各个子卷积核进行卷积计算,得到与子卷积核数量对应的中间特征图片;所述子卷积核通过对原始反卷积核进行离线重排预处理后得到;
57.原始反卷积核即没有采用本发明方法进行变换前的初始反卷积核;
58.步骤2,将所述中间特征图片进行在线重排,得到一个输出特征图片。
59.本发明通过预先将原始反卷积核拆成多个子卷积核,将特征图片的反卷积运算转换成卷积运算,从而加快反卷积计算速度,可以采用专用的卷积加速器进行加速计算。
60.具体地,对原始反卷积核进行离线重排预处理,包括步骤:
61.1)将原始的反卷积核旋转180
°
,得到旋转后的反卷积核;
62.2)根据原始的反卷积核的尺寸kd及反卷积的步长sd,判断是否进行补零操作;如判断是否满足k
d mod sd!=0,如果是,则在旋转后的反卷积核的左侧补充m列零、上侧补m行零,m=s
d k
c-kd,得到补零后的反卷积核;如果不满足,则不补零,直接进入下一步;kc为子卷积核的尺寸;
63.3)从步骤2)得到的反卷积核中取出权重元素,根据子卷积核的数量和子卷积核的尺寸kc重新排布得到多个子卷积核;所述子卷积核的数量根据反卷积的步长sd确定,子卷积核的尺寸kc根据原始的反卷积核的尺寸kd及反卷积的步长sd确定。
64.权重元素取出及排布的方法具体可采用以下方法:
65.根据子卷积核的尺寸kc,在步骤2)得到的反卷积核中,选择sd×
sd个权重元素,将所选的各个权重元素作为基准原点;
66.分别以各个基准原点为起点,在反卷积核的水平方向和垂直方向上均每隔sd个位置取权重元素,将对应各个基准原点取出的权重元素相邻排布到同一个子卷积核中,得到多个所述子卷积核。
67.所述子卷积核的数量为sd×
sd。子卷积核的尺寸。子卷积核的尺寸代表向上取整运算;
68.下面以二维反卷积核、对二维输入特征图片进行处理为例,详细说明离线重排和在线重排步骤。
69.1、反卷积核离线重排方法:
70.首先声明转换前的反卷积计算中的主要计算参数:
71.kd:原始的反卷积核的尺寸,一般二维反卷积核大小为kd×
kd;
72.sd:反卷积的步长,表示反卷积核移动的步长,满足1≤sd≤kd;
73.c
din
:反卷积的输入通道数;
74.c
dout
:反卷积的输出通道数;
75.转换为卷积计算后的相关参数:
76.kc:子卷积核的尺寸,一般转换后为二维情况下,子卷积核的大小为kc×
kc;
77.sc:子卷积的步长,表示子卷积核移动的步长;
78.c
cin
:子卷积的输入通道数;
79.c
cout
:子卷积的输出通道数。
80.明确离线重排后的子卷积核的尺寸大小为明确离线重排后的子卷积核的尺寸大小为代表向上取整运算,以反卷积的步长sd为除数,将原始的反卷积核拆解成了相对更小的子卷积核;
81.离线重排后的子卷积的步长sc等于1,输入通道数c
cin
与重排前的反卷积的输入通道数c
din
相同;输出通道数c
dout
扩大了sd×
sd倍,即c
cout
=c
dout
×
sd×
sd;明显可以看出反卷积步长sd是连接反卷积和卷积转换的桥梁,sd用于确定子卷积的输出通道数;
82.本实施例中,具体的参数为kd=3,sd=2,c
din
=c
dout
=1,由上面的公式可以计算出kc=2,c
cin
=1,c
cout
=4。
83.对原始反卷积核进行离线重排预处理,方法如下:
84.1)将原始的反卷积核旋转180
°

85.2)由于k
d mod sd=3mod 2!=0,因此在旋转后的反卷积核左侧和上侧补s
d k
c-kd=1列/行零,即在旋转后的反卷积核的左侧和上侧分别补了1列0和1行0,得到补零后的反卷积核;
86.3)根据子卷积核的尺寸kc,在步骤2)得到的反卷积核中,选择sd×
sd个权重元素,将所选的各个权重元素作为每个子卷积核的基准原点,一般选择反卷积核左上角的sd×
sd个权重元素。
87.分别以各个基准原点为起点,在水平方向和垂直方向上均每隔sd个位置取权重元素,将对应各个基准原点取出的权重元素相邻排布到同一个子卷积核中。每隔sd个位置,是指权重元素在反卷积核中位置的坐标编号相差sd。
88.如图2所示,本实施例从反卷积核的左上角开始,选择2
×
2个权重元素(0,0,0,9)作为基准原点,每sd=2个数取相应的权重元素,重新组合排布,得到所述数量的子卷积核,本例中得到4个子卷积核。
89.值得注意的是,上述步骤中各个子卷积核中的权重元素的排布顺序不是固定的,可以随意排布,但是为了最后在线重排方案的性能收益,优选按照处理器内存连续的方式进行通道顺序的排布。
90.2、卷积计算后,将所述中间特征图片进行在线重排:
91.将输入特征图片分别和各个子卷积核进行卷积计算,得到对应数量的中间特征图片。而在做完卷积运算后,在中间特征图片的边缘可能会出现冗余的数据,因此可以将卷积计算后得到的中间特征图片进行裁剪,做完裁剪后再取出中间特征图片中的值重新排布到二维平面上。如图3所示,左图为卷积计算后的中间特征图片,右图为在线重排后的输出特征图片。
92.将输入特征图片分别和子卷积核进行卷积计算得到的中间特征图片进行在线重排,在线重排是表示每次卷积计算完成后立即进行重排,包括以下步骤:
93.从每个中间特征图片的相同位置取值,如图3左图用椭圆虚线框出的4个值;然后将取出的值相邻排布到同一个二维平面上,如图3右边方形虚线框出的4个值。
94.通过上述取值方法取出所有中间特征图片上的值,并排布到所述二维平面上,得到输出特征图片。
95.重排后的输出特征图片和原始的反卷积的处理结果(即原始的反卷积的输出特征图片)完全一致,由于这种变换方式在数学上是等价的,因此没有计算上的精度误差,可以将上述处理方法运用到专用ai加速器加速反卷积计算单元、或者神经网络的反卷积层中。
96.实施例二
97.如图4所示,本实施例提供了一种反卷积处理装置,包括:
98.离线重排模块,用于对原始的反卷积核进行离线重排,得到多个子卷积核;
99.卷积处理模块,用于将输入特征图片分别与各个子卷积核进行卷积计算,得到与子卷积核数量对应的中间特征图片;
100.在线重排模块,用于将中间特征图片进行在线重排,得到输出特征图片。
101.优选地,所述离线重排模块包括:
102.旋转模块,用于将原始的反卷积核旋转180
°

103.补零模块,用于根据原始的反卷积核的尺寸kd及反卷积的步长sd,判断是否满足补零条件,若满足,则对旋转后的反卷积核进行补零操作,若不满足,则不进行补零操作;
104.重排模块,用于从补零模块中得到的反卷积核中取出权重元素,根据子卷积核的数量和子卷积核的尺寸kc对权重元素重新排布得到多个子卷积核;所述子卷积核的数量根据反卷积的步长sd确定,子卷积核的尺寸kc根据原始的反卷积核的尺寸kd及反卷积的步长sd确定。
105.优选地,所述重排模块,包括:
106.基准原点选取模块,用于根据子卷积核的尺寸kc,在经补零模块得到的反卷积核中,选择sd×
sd个权重元素,将所选的各个权重元素作为每个子卷积核的基准原点;
107.排布模块,用于分别以各个基准原点为起点,在水平方向和垂直方向上均每隔sd个位置取权重元素,将对应各个基准原点取出的权重元素相邻排布到同一个子卷积核中,得到所述多个子卷积核。
108.优选地,所述补零条件为:k
d mod sd!=0;补零操作中,在旋转后的反卷积核的左侧补充m列零、上侧补充m行零,m=s
d k
c-kd。
109.优选地,所述子卷积核的尺寸kc满足关系式:满足关系式:代表向上取整运算。
110.优选地,将所述中间特征图片进行在线重排,包括:
111.从每个中间特征图片的相同位置取值,将相同位置对应的值相邻排布在同一个二维平面上,重复以上过程,直到所有中间特征图片上的值均排布到该二维平面上为止,得到输出特征图片。
112.优选地,从中间特征图片中取值前,对中间特征图片进行裁剪预处理。
113.优选地,将输入特征图片分别与各个子卷积核进行卷积计算时,使用卷积加速器。
114.本发明的又一实施例中,提供了一种电子设备,包括处理单元和存储单元,存储有计算机可执行指令,所述指令在被所述处理单元执行时用于实现前述的反卷积处理方法。
115.本发明的又一实施例中,提供了一种介质,存储有计算机可执行指令,所述指令在被处理单元执行时用于实现前述的反卷积处理方法。
116.本发明通过将反卷积计算转换为卷积计算,因此可以用现有的专用卷积加速器进行加速,无需再设计专用的反卷积加速器,在超分辨率重建、生成对抗网络、目标检测等多个深度学习应用场景可以起到显著的计算加速效果。
117.以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献