【问题标题】:Confusion about the output channels of convolution neural network卷积神经网络输出通道的困惑
【发布时间】:2021-06-07 09:07:21
【问题描述】:

我对卷积神经网络中的多通道场景感到困惑。

假设我有一个 10(width) * 5(height) * 6(channels) 图像,我将其输入到默认的二维卷积层,其中 stride=1 和 padding=0 期望输出为 8(width) * 3(height) * 16(channels)

我知道内核的大小是3(width) * 3(height),但我不知道到底有多少个内核,以及如何应用于输入数据以提供最后 16 个通道。

有人可以帮帮我。

【问题讨论】:

    标签: deep-learning pytorch convolution


    【解决方案1】:

    2D 卷积层的每个输入通道、每个输出通道都包含一个内核。所以在你的情况下,这将是6*16=96 内核。对于 3x3 内核,这对应于 3*3*96 = 864 参数。

    >>> import torch
    
    >>> conv = torch.nn.Conv2d(6, 16, (3, 3))
    >>> torch.numel(conv.weight)
    864
    

    对于一张图像,每个输入通道首先应用一个内核。在您的情况下,这会产生 6 个特征图,它们加在一起(+ 可能的偏差)以形成输出通道的 1 个。然后,重复 15 次,形成其他 15 个输出通道。

    【讨论】:

      猜你喜欢
      • 2015-02-27
      • 2020-08-16
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      • 2018-01-24
      • 2017-01-01
      • 1970-01-01
      相关资源
      最近更新 更多