【问题标题】:How many kernels are used for 2D convolution on multiple input channels?多个输入通道上的 2D 卷积使用多少个内核?
【发布时间】:2021-11-08 20:44:03
【问题描述】:

我了解内核是如何与卷积运算相关的。我对每个操作中使用了多少内核感到困惑。假设输入图像为 256x256x3,我将其通过 32 个输出通道的 2D 卷积层。每个输出通道是通过在所有 3 个输入通道上卷积相同的内核还是通过在 3 个输入通道中的每一个上卷积不同的内核来创建的?换句话说,这个操作是使用 96 个还是 32 个不同的内核来产生 32 个通道?

i = Input(shape=(256,256,3))
x = Conv2D(filters=32,kernel_size=(3,3),padding='same',activation='relu') (i)

【问题讨论】:

    标签: python keras deep-learning neural-network conv-neural-network


    【解决方案1】:

    通过将内核与整个输入进行卷积来创建输出通道。

    但请注意,尽管您将内核大小设置为 3x3,但实际内核不是 2D 而是 3D,例如 3*3*c,其中 c 是输入通道数。

    换句话说,每个内核都有c 2D 过滤器,每个过滤器都应用于其相应的通道,获得c 值(每个输入通道一个),这些值相加得到一个单一的值的输出通道。所以它们是 32 个内核,但如果你想说它们实际上是 96 个 2D 过滤器,你并没有错,因为内核中的 2D 过滤器是相互独立的。

    请参阅 Andrew NJ 的 video 以获得更好的解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 2021-10-10
      • 2017-05-16
      • 2015-02-27
      相关资源
      最近更新 更多