转置卷积运算及其与卷积关系解析

转置卷积

1.转置卷积

  • 转置卷积是一种卷积
    • 它将输入和核进行了重新排列
    • 同卷积一般是做下采样不同,它通常是用作上采样
    • 如果卷积将输入从(h, w)变成了 ( h 1 , w 1 ) (h_1,w_1) (h1,w1),同样超参数下它将从 ( h 1 , w 1 ) (h_1,w_1) (h1,w1)变成(h, w).

2.重新排列输入和核

  • 当填充为0步幅为1时
    • 将输入填充 k − 1 k-1 k1(上下、左右,k 是核窗口)
    • 将核矩阵上下、左右翻转
    • 然后做正常卷积(填充0、步幅1)

转置卷积运算及其与卷积关系解析_第1张图片

  • 当填充为p步幅为1时

    • 将输入填充 k − p − 1 k-p-1 kp1(k是核窗口的大小)(下图p=1)

    • 将核矩阵上下、左右翻转

    • 然后做正常卷积(填充0、步幅1)

转置卷积运算及其与卷积关系解析_第2张图片

  • 当填充为p步幅为s时(下图p=1,s=2)

    • 在行和列之间插入s-1行或列

    • 将输入填充 k − p − 1 k-p-1 kp1(k是核窗口)

    • 将核矩阵上下、左右翻转

    • 然后做正常卷积(填充为0、步幅为1)

转置卷积运算及其与卷积关系解析_第3张图片

3. 形状换算

  • 输入高(宽)为n,核k,填充p,步幅s
    • 转置卷积: n ′ = s n + k − 2 p − s n^{'}=sn + k - 2p -s n=sn+k2ps
    • 卷积: n ′ = ⌊ ( n − k − 2 p + s ) / s ⌋ → n ≥ s n ′ + k − 2 p − s n^{'} = \lfloor (n-k-2p+s)/s\rfloor \rightarrow n \ge sn^{'}+k-2p-s n=(nk2p+s)/snsn+k2ps(向下取整)
    • 可以看出:当卷积满足刚好整除的情况,(n取每一组里最小的值),此时卷积与转置卷积刚好运算公式相反。
  • 如果让高宽成倍增高,那么 k = 2 p + s k=2p+s k=2p+s

4. 同反卷积的关系

  • 数学上的反卷积(deconvolution)是指卷积的逆运算

    • 如果 Y = c o n v ( X , K ) Y=conv(X,K) Y=conv(X,K),那么 X = d e c o n v ( Y , K ) X=deconv(Y,K) X=deconv(Y,K)
  • 反卷积很少用在深度学习中

    • 我们说的反卷积神经网络指用了转置卷积神经网络

你可能感兴趣的:(d2l,深度学习,神经网络,python,pytorch)