conv2d( input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)
strides=[b,h,w,c]
我知道b
表示batch
,h
表示height
,w
表示width
,c
表示{{1} }}。我看到channel
和b
始终是1.如果c
或b = 2
是什么意思?
答案 0 :(得分:2)
Stride
是您要在特定方向跳过的金额。您的每个批次都是4维(batch_size, height, width, channels
)。但是,你知道计算不应该跳过任何batch
,也不应该跳过任何channel
,但是GPU看到的只是一个4D张量,因此请求stride
每个维度。
tf.nn.conv2d
是Tensorflow中的低级实现,它实际暴露了GPU API。还有另一个高级实现,tf.layers.Conv2d
只允许您使用height stride
和width stride
传递两个元素元组。但是,如果您想使用低级API(可能是由于对参数的更多控制),您应始终将批次和列的步幅保持为1。