转置卷积

https://zh-v2.d2l.ai/chapter_computer-vision/transposed-conv.html

1 Like

小白光看这个完全看不懂转置卷积是什么。。。。。。。

1.数值不同,不可逆,形状可逆
2.效率高。原因:
①普通卷积操作的前向传播通过矩阵乘法一次实现,而非形式上的卷积核进行卷积并平移
②普通卷积操作的反向传播是输入乘转置权重矩阵
③上述代码表明,转置卷积作用实质上也是矩阵乘法,其前向传播为普通卷积的反向传播,反向传播同理
如有错误,请指正

1 Like

看老师的第二节课,可以理解,书上太模糊了

以本章给出的例子
X.shape = [3, 3]
K.shape = [2, 2]
Y.shape = [2, 2]
W.shape = [4, 9]
X.reshape.shape = [9, 1]

此时进行卷积运算需要进行 4 * 4 = 16 次乘法运算(输出 Y 的每个像素进行 4 次)
而运用矩阵乘法运算需要进行 4 * 9 = 36 次乘法运算

所以似乎利用矩阵乘法来实现卷积效率并不高,这也符合直觉,因为权重矩阵 W 填充了大量的 0,而这些部分的运算是无意义的 (0 的个数为 20,正好是多出来的乘法运算个数)
但是卷积操作需要进行 for_loop 操作,而矩阵乘法可以利用硬件并行加快计算,或许当 W 不太大时矩阵乘法会有更高的效率?