CNN中的过滤器数量是多少?

xxx*_*222 37 machine-learning convolution neural-network theano

我目前正在看theano的API,

theano.tensor.nnet.conv2d(input, filters, input_shape=None, filter_shape=None, border_mode='valid', subsample=(1, 1), filter_flip=True, image_shape=None, **kwargs)
Run Code Online (Sandbox Code Playgroud)

在哪里filter_shape是一个元组(num_filter, num_channel, height, width),我对此感到困惑,因为在图像上滑动滤镜窗口时,不是由步幅决定的滤镜数量?我怎样才能像这样指定过滤器编号?如果它是由参数stride(如果有的话)计算的,那对我来说是合理的.

此外,我也对术语特征映射感到困惑,它是每层的神经元吗?批量大小怎么样?它们如何相关?

rcp*_*nto 55

滤波器的数量是神经元的数量,因为每个神经元对层的输入执行不同的卷积(更准确地说,神经元的输入权重形成卷积核).

特征映射是应用过滤器的结果(因此,您具有与过滤器一样多的特征映射),并且其大小是过滤器和步幅的窗口/内核大小的结果.

下面的图像是我能找到的最好的解释这个概念的高级别: 在此输入图像描述 请注意,2个不同的卷积滤波器应用于输入图像,从而产生2个不同的特征图(滤波器的输出).每个特征图的每个像素是卷积层的输出.

例如,如果您有28x28输入图像和带有20个7x7滤镜和步幅1的卷积层,您将在此图层的输出处获得20个22x22特征贴图.请注意,这将作为宽度=高度= 22且深度= num_channels = 20的卷呈现给下一层.您可以使用相同的表示来训练您的CNN上的RGB图像,例如来自CIFAR10数据集的图像,这将是32x32x3卷(卷积仅应用于2个空间维度).

  • 我认为OP正在询问您的20个过滤器来自哪里.我的意思是为什么20? (8认同)
  • 我也有疑问.为什么20? (3认同)
  • 虽然这种高级解释是正确的,但我必须澄清一下,过滤器的数量=本身的神经元数量。一组神经元,每个神经元都看到先前特征图的一部分(=第一层神经元的图像),并且每个神经元都应用相同的权重来形成整个“过滤器”。同意,在编码时,您几乎不需要了解这种结构级别,但不会改变您的第一句话是错误的事实。不过,很好的解释! (3认同)