在这里我可能缺少一些简单的东西,但是当我改变卷积层的步幅数时,我并没有相应地改变要适应的参数数。考虑这些:
from keras import layers as L
x=L.Conv2D(filters=32, kernel_size=(3,3), strides=(1,1),padding='valid')(input)
y=L.Conv2D(filters=32, kernel_size=(3,3), strides=(2,2),padding='valid')(input)
z=L.Conv2D(filters=32, kernel_size=(3,3), strides=(3,3),padding='valid')(input)
我认为,(3,3)的步幅将使每个维度上放置的过滤器减少3倍,因此要适应的参数数量也相应减少。但是,事实并非如此。
如果我的输入层的大小为(none,63,143,32)-我正在将其压缩的conv3d输出提供给它-那么卷积的参数数量始终为9248,无论步幅如何。太...我想念什么?
答案 0 :(得分:2)
卷积滤镜从不依赖于图像的大小,填充,步幅等。
它们仅取决于kernel_size
和filters
。
它们的形状是:(kernel_size[0], kernel_size[1], input_filters, output_filters)
我建议您阅读this page,该书对滑动图像的卷积进行了很多解释,尽管它们不代表图像中的输入通道。