填充和跨步(最常见的情况)
现在我们将对前面描述的填充示例应用跨步卷积并计算 p = 1, s = 2
的卷积
以前当我们使用 strides = 1
时,我们的滑动窗口移动了 1 个位置,strides = s
它移动了 s
个位置(你需要更少地计算 s^2
个元素。但是在我们的例子中我们可以采取捷径并且根本不执行任何计算。因为我们已经计算了 s = 1
的值,在我们的例子中我们可以抓住每一个元素。
所以,如果解决方案是 s = 1
的情况
如果是 s = 2
,它将是:
检查前一个矩阵中值 14,2,12,6 的位置。我们需要在代码中执行的唯一更改是将宽度和高度尺寸的步幅从 1 更改为 2(2-nd,3-rd)。
res = tf.squeeze(tf.nn.conv2d(image, kernel, [1, 2, 2, 1], "SAME"))
with tf.Session() as sess:
print sess.run(res)
顺便说一句,没有什么可以阻止我们对不同的维度使用不同的步幅。