093、超分中的上采样方法:亚像素卷积、反卷积与PixelShuffle对比

📅 2026/7/10 1:38:54
093、超分中的上采样方法:亚像素卷积、反卷积与PixelShuffle对比
093、超分中的上采样方法:亚像素卷积、反卷积与PixelShuffle对比上周帮师弟调一个轻量级超分模型,他用的反卷积做上采样,训练到第50个epoch突然loss炸了——梯度爆炸,直接NaN。我一看,反卷积的初始化没处理好,输出通道数还设错了。这让我想起自己刚入坑超分时,被这三种上采样方法折磨的日子。今天就把这些坑一次性说清楚。从一张低分辨率图说起超分辨率重建的核心矛盾很直接:输入是小图,输出是大图。怎么把特征图变大的同时,不丢失细节、不引入伪影?这就是上采样层要解决的问题。目前主流方法就三种:反卷积(Deconvolution)、亚像素卷积(Sub-pixel Convolution)、PixelShuffle。名字听着玄乎,本质都是“从小图到大图”的数学映射,但实现思路和效果天差地别。反卷积:最直观但最危险反卷积在PyTorch里叫nn.ConvTranspose2d,名字带“反”字,但千万别以为它是卷积的逆运算。它的工作方式是:先在输入特征图每个像素之间插入0(这叫“空洞填充”),然后做标准卷积。比如输入4x4,想输出8x8,就先在4x4的格子间插0变成7x7(具体尺寸取决于stride和padding),再用卷积核扫一遍得到8x8。这里踩过坑:反卷积的输出尺寸计算公式和普通卷积是反过来的,很多人直接套用卷积公式导致尺寸对不上。正确的计算是:output_size = (input_size - 1