Neural network 输出体积的大小(卷积神经网络) 介绍

Neural network 输出体积的大小(卷积神经网络) 介绍,neural-network,conv-neural-network,Neural Network,Conv Neural Network,根据我的理解,输出体积的大小表示给定以下参数的神经元数量: 输入卷大小(W) Conv层神经元的感受野大小(F),即内核或过滤器的大小 应用它们的步幅(S)或我们用于移动内核的步骤 边界上使用的零填充量(P) 我贴了两个例子。在例1中,我一点问题都没有。但在例2中,我感到困惑 例1 在真实世界示例中部分中,它们以[227 x 227 x 3]输入图像开始。参数如下:F=11,S=4,P=0,W=227 我们注意到卷积的深度为K=96(为什么? 输出卷的大小为(227-11)/4+1=55。因此

根据我的理解,输出体积的
大小
表示给定以下参数的神经元数量:

  • 输入卷大小(W)
  • Conv层神经元的感受野大小(F),即内核或过滤器的大小
  • 应用它们的步幅(S)或我们用于移动内核的步骤
  • 边界上使用的零填充量(P)
  • 我贴了两个例子。在例1中,我一点问题都没有。但在例2中,我感到困惑


    例1 在真实世界示例中部分中,它们以
    [227 x 227 x 3]
    输入图像开始。参数如下:
    F=11,S=4,P=0,W=227

    我们注意到卷积的深度为
    K=96
    (为什么?

    输出卷的大小为
    (227-11)/4+1=55
    。因此,我们将有
    55 x 55 x 96=290400
    神经元,每个神经元指向图像中的
    [11 x 11 x 3]
    区域,这实际上是我们想要计算点积的内核


    例2 以下示例取自Numpy examples部分。我们有一个具有以下形状的输入图像
    [11 x 11 x 3]
    。用于计算输出卷大小的参数如下:
    W=11、P=0、S=2和F=5

    我们注意到卷积的深度为
    K=4

    公式
    (11-5)/2+1=4
    只产生4个神经元。每个神经元指向图像中大小为
    [5 x 5 x 4]
    的区域

    看起来他们只是在x方向移动内核。我们不应该有12个神经元,每个神经元都有重量

    V[0,0,0] = np.sum(X[:5,:5,:]   * W0) + b0
    V[1,0,0] = np.sum(X[2:7,:5,:]  * W0) + b0
    V[2,0,0] = np.sum(X[4:9,:5,:]  * W0) + b0
    V[3,0,0] = np.sum(X[6:11,:5,:] * W0) + b0
    

    问题
    • 我真的不明白为什么只使用4神经元而不使用12
    • 为什么他们在示例1中选择了
      K=96
    • W参数是否始终等于输入图像中的宽度

    示例1

    为什么卷积的深度是K=96

    深度(K)等于卷积层上使用的滤波器数量。通常,数字越大,效果越好。问题是:训练速度较慢。复杂的图像需要更多的过滤器。我通常在开始测试时在第一层使用32个过滤器,在第二层使用64个过滤器

    示例2

    公式(11-5)/2+1=4只产生4个神经元

    我不是专家,但我认为这是错误的。公式仅定义输出大小(高度和宽度)。卷积层具有大小(高度和宽度)和深度。大小由该公式定义,深度由使用的过滤器数量定义。神经元总数为:

    ## height * width * depth
    4 * 4 * 4 = 64
    
    问题

  • 该层有64个神经元,每个深度切片16个
  • 过滤器的数量越多,通常越好
  • 据我所知,你需要分别计算卷积层的高度和宽度。计算输出宽度时,W将是图像的宽度,F将是所用过滤器的宽度。计算高度时,将使用图像和过滤器的高度。当图像和过滤器平方时,您可以执行单个操作,因为两个操作的结果相同

  • 谢谢你,威尔·格鲁克。对不起,最后一个问题。我说的对吗:卷曲有高度、宽度和深度。在实例2中,卷积层具有64个神经元。