【问题标题】:Feature map of convolutional-neural-network and total number of parameters卷积神经网络的特征图和参数总数
【发布时间】:2021-05-15 19:28:27
【问题描述】:

假设我有一个尺寸为 125 * 125 的 RGB 图像,并且我使用了 10 个尺寸为 5 * 5 且步幅 =3 的过滤器,那么这一层的特征图是什么?以及参数的总数是多少
我对特征图的猜测: 10*((125-5)/3)+1 = (41 * 41 * 10)(no of filters) 但是 RGB 图像或灰度图像之间有什么区别,所以对于 RGB 图像它应该是41 * 41 * 30(过滤器数量 * 输入图像的通道数量)? 参数总数:5 * 5 * 3 * 10=750 ?

【问题讨论】:

    标签: machine-learning deep-learning neural-network conv-neural-network


    【解决方案1】:

    注意:我有一个well-recieved post 了解 CNN 如何在 Data Science Stack Exchange 上工作的直觉。也请检查一下。

    您对特征图的形状是正确的,具有给定的步幅。

    CNN 中的参数总数由 -

    给出
    Params = (n*m*l+1)*k
    
    where, l = number of input feature maps / image channels, 
           k = number of output feature maps / # of filters, 
           n*m = filter dimensions
    
    Important! - The +1 in the formula is because each of the output feature
    maps have a bias term added, which is also a trainable parameter. So, don't
    forget to add that!
    

    因此,对于您的情况,可训练参数的数量:((5*5*3+1)*10) = 760

    而且,对于灰度,它是:((5*5*1+1)*10) = 260


    这是一个非常好的可视化,我发现它可以直观地展示过滤器如何工作以创建特征图。

    input feature maps 与输入图像的通道数相同,如果它是第一个 CNN 层。由于 CNN 通常是堆叠的,因此之前的 CNN 的输出通道称为 input feature maps 到当前的 CNN 层。

    【讨论】:

      【解决方案2】:

      特征图的数量 = 过滤器的数量,每个特征图的大小将为 41 * 41(如果填充为零,则计算正确)。因此,在上述情况下,如果您有 10 个过滤器,您将拥有 10 个大小为 41 * 41 的特征图,与 rgb 或灰度无关。

      对于 rgb 与灰度,将通道视为输入层的特征图,并且一次将过滤器应用于所有特征图。如果您有一个过滤器大小为 5 * 5 的输入 rgb 图像,它实际上是一个大小为 5 * 5 * 3(通道数)的过滤器。因此,如果您在尺寸为 125 * 125 且步幅为 3 的图像上应用 10 个 5*5 的滤镜,则与 rgb 或灰度无关,您将始终得到 10 个 41 * 41 的特征图。

      每当您定义一个过滤器时,它都会被定义为 x * y,但对于 2d 卷积,z 始终等于“应用了 conv 的通道数”。这样每个过滤器的参数总数将是 x * y * n_channels + 1(额外的 1 是常数)

      在您使用 10 个滤镜的情况下,对于 rgb 图像,每个滤镜的大小为 5 * 5 * 3。因此,rgb 的总参数 = 10 * (5 * 5 * 3 + 1)。对于灰度,每个滤镜是 5 * 5 * 1。因此,灰度的总参数 =10 * (5 * 5 * 1 + 1)

      【讨论】:

      • 我想你忘了从添加的偏置项中添加参数。所以它会变成10 * (5 * 5 * 3 + 1) :)
      • 是的,我提到了忽略常量,但最好包含它。我已经进行了编辑。谢谢! :)
      • 所以每个过滤器对 3 个通道应用了 3 次,我有 10 个过滤器,所以它的 30 层大小为 41*41,或者在应用每个过滤器和 3 个通道后,我添加 3 层的像素值,我得到每个具有 3 个通道的过滤器 1 层所以答案是 41*41*10 ?
      • 1 个过滤器同时应用于所有图像通道,因此如果您有 10 个过滤器,您将获得 41*41*10 的输出,与您的输入有多少通道无关。
      猜你喜欢
      • 2014-08-09
      • 2010-11-21
      • 2016-03-10
      • 2020-08-21
      • 2016-04-16
      • 2021-12-16
      • 2017-06-14
      • 2017-08-22
      • 2012-01-12
      相关资源
      最近更新 更多