反卷积即卷积的逆运算,下面针对不同的卷积列出其对应的反卷积大小计算
ps: 卷积输出 o = (i+2*p-k)/s +1
以下都是,输入、卷积核都是 n * n为例
一、没有Padding,步长为1的卷积的反卷积
k,p=0,s=1的卷积
对应
反卷积:k’ = k,s’ = s,p’ = k-1 的卷积
其输出大小:o’ = i’ + (k-1)
例如:
输入为4 * 4,k=33,s=1,padding=0,输出为22的卷积,
其对应反卷积为:
2 * 2 经过padding’=2(得到66),k’=33,s’=1的卷积计算,得 4*4
ps:算一次卷积,输入输出知道了,倒过来就是反卷积输入输出。
如想知道k=3,s=1的反卷积的输出,那它去做卷积运算,但后输入输出倒过来就是反卷积的输入输出。
二、有0填充,步长为1的卷积的反卷积
零填充卷积的转置等同于卷积用较少零填充的输入。
k,s=1,p的卷积
对应
k’ = k,s’ = s,p’ = k-p-1的反卷积
输出:o = i’ + (k-1) -2p
例如:
输入5 * 5、k = 4 * 4,s = 1 , padding = 2 的卷积
对应反卷积
输入6 * 6,k = 4,s = 1,padding=1
三、same padding(half padding)
对于same padding(ps : same padding输入输出相等),其卷积的转置就是本身
k = 2*n + 1,s=1,p = 向下取整(k/2),其输入=输出
对应反卷积
k’ = k,s’ = s,p’ = p
完全一样
四、Full padding
完全填充卷积的转置的等效是非填充卷积
k,s = 1,p=k-1的卷积
对应反卷积
k,s=1,p=0
输出 o = i - (k-1)
例如:
五、无填充,步长>1
卷积s>1,那么估计反卷积s<1
input矩阵元素间填充0,来达到s<1的效果
假设卷积是非填充的(p=0),并且其输入大小i使得i-k是s的倍数。在这种情况下,以下关系成立:
卷积 输入i*i, k, p=0, s, (i-k)是s的整数倍
对应反卷积:
k’ = k,s’ = 1,p’ = k - 1, i"(i"是输入矩阵元素间每个填充s-1个的0)
输出:o = s(i’-1)+k (此处的i’ 非i")
例如:
卷积输入 55,k=3,s=2,p=0
对应反卷积:
输入22,k=3,s=1,p=2
有填充,步长>1
当卷积的输入大小i使得i+2p-k是s的倍数时,通过组合关系(有填充,s=1)和关系(无填充,s>1),分析可以扩展到零填充情况:
卷积:k, s, p, i,(i+2p-k 是 s 的整数倍)
对应反卷积
i"(输入元素间填充s-1个0),k‘ = k,s’ = 1,p’ = k -p -1
输出 o = s(i’-1) +k -2p
例如
卷积输入:55,k=33,padding=1,s = 2
对应反卷积
输入33,k’ = 33,s‘ = 1,padding‘ = 1
引入变量a可以统一下前面的规律:
卷积:k, s, p
对应反卷积
i’‘(是输入i’的元素间填充s-1个0),k’ = k,s’ = 1,p’ = k -p -1,a = (i + 2p - k) ,a是对上面、右边的填充。
输出: o = s(i’-1) + a +k - 2p
例如:
卷积输入66 ,k = 33,padding = 1,s = 22 (此时i+2p-k 不是 s 的整数倍)
对应反卷积
输入为33,k’ = 3*3,s’ = 1,p’ = 1, a = 1,