Tensorflow 凯拉斯:改变步幅并不意味着';t似乎正在更改conv2d/conv3d中的参数数量

Tensorflow 凯拉斯:改变步幅并不意味着';t似乎正在更改conv2d/conv3d中的参数数量,tensorflow,keras,Tensorflow,Keras,这里我可能遗漏了一些简单的东西,但是当我改变卷积层中的跨步数时,我并没有得到要适应的参数数量的相应变化。考虑这些: 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=

这里我可能遗漏了一些简单的东西,但是当我改变卷积层中的跨步数时,我并没有得到要适应的参数数量的相应变化。考虑这些:

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,63143,32)——我给它输入一个conv3d的压缩输出——那么卷积的参数数总是9248,不管步幅如何。所以…我遗漏了什么?

卷积滤波器从不依赖于图像的大小、填充、步幅等

它们只依赖于
内核大小
过滤器

它们的形状是:
(内核大小[0],内核大小[1],输入过滤器,输出过滤器)


我建议您阅读这篇文章,其中解释了很多关于滑动图像的卷积,尽管它们并不代表图像中的输入通道。

卷积过滤器从不依赖于图像的大小、填充、步幅等

它们只依赖于
内核大小
过滤器

它们的形状是:
(内核大小[0],内核大小[1],输入过滤器,输出过滤器)


我建议您阅读这篇文章,它解释了很多关于滑动图像的卷积,尽管它们并不代表图像中的输入通道。

这很有道理。我错过了这一微妙之处,感到十分恼火。谢谢这很有道理。我错过了这一微妙之处,感到十分恼火。谢谢CNN中的参数数量无需输入、焊盘和跨步。它们只影响输出的形状。这里有3 X 3内核,深度=32。每个图层也有32个要素贴图。因此,一个图层的参数总数为(3x3x32)x32+32=9248(添加是针对偏差。您有32个内核,因此有32种不同的偏差。CNN中的参数数量不受输入、焊盘和跨步的影响。它们只影响输出的形状。这里有3 X 3内核,深度=32。每个层也有32个特征映射。因此,一个层的参数总数为(3 X 3 X 32)x32+32=9248(加法用于偏置。您有32个内核,因此有32个不同的偏置。