Tensor flow使用tf.nn.conv2d执行基本卷积操作。
我特别感兴趣的是" strides"参数,它允许您设置卷积滤镜的步幅 - 每次移动滤镜时图像的距离。
one of the early tutorials中给出的示例,每个方向的图像步幅为1,
def conv2d(x, W):
return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
strides数组在链接文档中有更多解释:
详细说明,使用默认的NHWC格式......
必须有步幅[0] =步幅[3] = 1.对于相同水平和顶点步幅的最常见情况,strides = [1,stride,stride,1]。
注意" strides"的顺序匹配输入的顺序:NHWC格式的[batch, height, width, channels]
。
显然,batch
和channels
的步幅不是1,这是不合理的,对吧? (您的过滤器应始终遍历每个批次和每个渠道)
但为什么在strides[0]
和strides[3]
中添加1以外的内容甚至可以选择呢? (它是一个"选项"是关于你可以在传入的python数组中放入1以外的东西,忽略上面的文档引用)
是否存在batch
或channels
维度无法跨越的情况,例如
tf.nn.conv2d(x, W, strides=[2, 1, 1, 2], padding='SAME')
如果是这样,那个例子在卷积运算方面甚至意味着什么?
答案 0 :(得分:-1)
在某些情况下,您可能会分批发送视频。这意味着您的批处理将是一系列帧。并且假设封闭框架应该非常相似,我们可以通过增加批处理跨度来省略其中的一些框架。据我了解。 IDK关于频道跨度的问题