为何U-Net分割模型要求输入宽高需被32整除?
输入尺寸需被32整除的数学原理
这类基于Encoder-Decoder架构的分割模型,核心逻辑是通过多次2倍下采样提取高层特征,再通过多次2倍上采样还原特征图尺寸,最终输出和输入/掩码匹配的分割结果。
- 模型的Encoder部分(特征提取骨干)通常会执行5次2倍下采样操作:每次下采样会让特征图的宽、高变为原来的1/2。经过5次后,特征图尺寸是输入尺寸除以 (2^5 = 32)。
- 为了保证下采样后的特征图尺寸是整数,输入的宽、高必须能被32整除。如果输入尺寸不满足这个条件,下采样后会得到非整数的特征图尺寸,后续Decoder上采样时无法精准还原到输入/掩码的原始尺寸,导致张量形状不匹配,训练直接报错。
- 举个实际例子:输入256×224时,256÷32=8,224÷32=7,下采样后特征图为8×7,是整数尺寸;如果输入是256×225,225÷32=7.03125,得到非整数尺寸,模型计算就会失败。
补充说明:Qubvel分割模型默认使用的骨干网络(如ResNet、EfficientNet系列)都包含5次下采样阶段,因此要求输入尺寸被32整除。若更换为下采样次数不同的骨干,对应的整除倍数会随之变化(比如4次下采样对应16)。
内容的提问来源于stack exchange,提问作者shiva
相关产品推荐
相关产品推荐

