如何在没有子采样的情况下使用 Keras Conv2D dilation_rate 参数?

how to use Keras Conv2D dilation_rate parameter without subsampling?

当我将 dilation_rate 参数传递给 Conv2D 时,结果输出被二次采样。例如,

inputs = Input(shape=(160,240,1))
lay = Conv2D(32, kernel_size=(3,3), dilation_rate=(2,2), use_bias=False)(inputs)
print(lay)

产量

Composite(input_1: Tensor[160,240,1]) -> Tensor[78,118,32]

从输出中可以看出,160x240 输入被二次采样为 78x118。这对我来说似乎是错误的。使用扩张卷积并不一定意味着我想要二次采样的结果。是否有某种解决方法?

我 运行 Keras 2.0.6CNTK 2.2 后端。

你的问题肯定和cntk后端有关。我无法使用 tensorflow 或 theano 后端重现它。 (我的形状是 (?, 156, 236, 32))

我建议将 strides 选项明确设置为 1(它应该是默认值,即使它不是用于 cntk 后端)。