1.nn.MaxPool2d 中使用 ceil_mode 和 padding的源码区别
nn.MaxPool2d 中使用 ceil_mode 和 padding的区别
nn.MaxPool2d在处理池化操作时,有两个关键参数:ceil_mode和padding,源码它们在处理边界时有所不同。源码默认情况下,源码ceil_mode为False,源码源码 锚点 缩放意味着窗口超出边界时会直接舍弃。源码webservice短信接收 源码如果设置ceil_mode为True,源码窗口可以超出但不超过一半,源码这相当于在边缘处做了半步的源码填充。
而padding则是源码直接在输入数据周围添加指定数量的像素。通常,源码池化操作用来降低图像分辨率,源码如设置stride为2,源码酷点的源码kernel_size为3,源码以达到每步降低一半的源码效果。例如,对于输入分辨率n,asp访问access源码不使用padding时,输出分辨率为n/2(向下取整)。
当n为偶数时,ceil_mode的windows串口编程源码作用显现,如n=4,3/2=1,不满足期望的2x2分辨率。这时,开启ceil_mode会向上取整至2,或者设置padding为1,都能达到目标。以3x3窗口池化4x4图像为例,ceil_mode会向右下方填充,采样点偏左上;而padding则偏右下方。
虽然两种方式都能得到期望的特征图形状,但视觉上存在细微差别。实践中,两者在PyTorch的 torchvision 源码中都被使用,具体选择哪种取决于具体任务的需求和性能考虑。总的来说,两者影响不大,可以根据个人偏好或者特定场景来决定使用哪种模式。