我是CNN话题的新手,我有一个关于输入图像与第一卷积层神经元之间的映射的基本问题。
我的问题是:输入图像是否应该到达第一卷积层(我是指第一隐藏层)中的所有神经元?
例如:如果我在CNN中的第一个隐藏层是8个神经元,在这种情况下,完整的输入图像被传递给所有这8个神经元,或者只有一组输入图像的像素被传递给每个神经元。
发布于 2020-03-15 04:43:13
我不确定你是否明白你在问什么,因为卷积层中的神经元数量是你自己不太关心的东西,除非你正在构建自己的CNN实现。
回答你的问题-否,第一个卷积层中的每个神经元仅连接到其自身感受野中的像素(由核大小给出),同样的逻辑也适用于下一个卷积层,除非它们现在连接到其感受野中的较低层神经元。
例如:如果我在
中的第一个隐藏层是8个神经元
你怎么知道它有8个神经元?除非你正在做一些低水平的CNN编程,否则不要指定神经元的数量。你需要的神经元的数量通常由kernel size,stride,padding的类型和你选择使用的filters的数量的组合给出。这4件事(连同图像的输入大小)告诉你需要多少神经元。
例如,在Keras中(因为你已经用tensorflow标记了这个问题),你可能会看到像这样的卷积层:
keras.layers.Conv2D(filters=128, kernel_size=3, strides=1, activation="relu",
input_shape=(100, 100, 1))正如您所看到的,您没有指定任何类似于这里的神经元数量的东西(至少不是直接指定)。在此设置下,最终输出的宽度和高度被裁剪2(由于默认填充),因此该层的输出形状为(128,98,98) (从技术上讲,它的形状为( None,128,98,98),其中None表示批量大小)。如果您将其扁平化,并将输出提供给单个神经元(假设是在密集层中),您最终将在这两层之间获得128 * 98 * 98 = 1,229,313个权重。
因此,对于密集层和卷积层之间的类比,上面的具有128个滤波器连接到一个输出神经元的卷积层类似于具有连接到一个输出神经元的1,229,313个神经元的密集层。
https://stackoverflow.com/questions/60686513
复制相似问题