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。因此
大小
表示给定以下参数的神经元数量:
例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个神经元。