-
转置卷积
卷积不会增大输入的高宽,通常要么不变、要么减半;
转置卷积则可以用来增大输入高宽。
Y [ i : i + h , j : j + w ] + = X [ i , j ] ⋅ K Y[i: i+h, j: j+w]+=X[i, j] \cdot K Y[i:i+h,j:j+w]+=X[i,j]⋅K
-
如果卷积将输入从 ( h , w ) (h, w) (h,w)变成了 ( h ′ , w ′ ) (h', w') (h′,w′),同样超参数的转置卷积则从 ( h ′ , w ′ ) (h', w') (h′,w′)变成 ( h , w ) (h, w) (h,w)。
-
代码实现
import torch from torch import nn def trans_conv(X, K): h, w = K.shape Y = torch.zeros((X.shape[0] + h - 1, X.shape[1] + w - 1)) for i in range(X.shape[0]): for j in range(X.shape[1]): Y[i:i + h, j:j + w] += X[i, j] * K return Y