我正在做一些关于在频域中执行端到端生成建模的实验。我有一个工作卷积层,但还没有一个Conv2DTranspose等价物。请注意,这不是反卷积!不幸的是,目前我的信号处理知识还很薄弱(今年秋天我要参加一些 SP 课程)。
我知道卷积是通过执行逐点乘法在频域中执行的。转置卷积是否具有等效的频域?如果是这样,在这里执行的正确操作或一系列操作是什么?
我正在做一些关于在频域中执行端到端生成建模的实验。我有一个工作卷积层,但还没有一个Conv2DTranspose等价物。请注意,这不是反卷积!不幸的是,目前我的信号处理知识还很薄弱(今年秋天我要参加一些 SP 课程)。
我知道卷积是通过执行逐点乘法在频域中执行的。转置卷积是否具有等效的频域?如果是这样,在这里执行的正确操作或一系列操作是什么?
基本上,如果我们将卷积定义为, 可以写成 Matrix 形式(见Generate the Matrix Form of 1D Convolution Kernel):
转置卷积由下式给出:
如果你仔细看,你会发现空间操作基本上是相关而不是卷积(即内核没有翻转)。
为了在频域中实现这一点,您需要乘以频域中内核的共轭而不是内核本身。
棘手的部分是尺寸。它将按照我在Replicate MATLAB's conv2()
in Frequency Domain 中的描述工作。
请注意,在深度学习的上下文中,操作的整个想法是内核将被学习(在每次反向传播迭代中自适应地)。这是为了学习上采样操作的最佳内核。