我知道步长作为一个整数的含义(即以多少步将滤波器应用到图像上)。但是(1, 1)
或者更高维度的步长又是什么意思呢?
回答:
步长定义了滤波器如何在输入图像(张量)上移动。没有什么能阻止你沿不同轴使用不同的步长,例如,stride=[1, 2]
意味着沿0轴每次移动1像素,沿1轴每次移动2像素。这种特定组合并不常见,但也是可能的。
Tensorflow API 更进一步,允许对4D输入张量的各个轴进行自定义步长设置(参见 tf.nn.conv2d
)。使用此API,设置strides=[1, 2, 2, 1]
并不罕见,这完全合理:它应该处理每张图像(第一个1
)和每个输入通道(最后一个1
),但对空间维度应用2x2
的步长。就卷积操作而言,任何strides
数组都是可应用的,然而并不是所有值都同样有用。
强烈推荐这个CS231n教程以获取更多细节。