我正在学习如何使用卷积神经网络,我接着为这些网络编写了我自己的框架。我被困在必须通过网络反向传播错误(Delta)并计算梯度的部分。我知道CNN中的过滤器是3D的,所以我们有一些过滤器的宽度、高度和深度。前馈没问题。让我们看一下前馈步骤中计算某一层输出的公式:

在层l中,滤波器的深度应与前一层l-1的输出z的输出通道数(深度)相同,以便进行卷积。在这里,在这个公式中,我们把前一层的输出和当前层的权重进行转换,这是有效的,因为第三坐标(深度)在这两层中是相等的。现在,让我们检查错误反向传播的公式:
在这一章中,我们给出了δ和权值阵列w的卷积,它们都来自层l+1。这就是让我困惑的地方,因为一般来说,它们的第三个坐标(深度)并不总是相等的。考虑一下VGGNet体系结构,让我们看看三个连续的层,其中过滤器的数量发生了变化:
..。
CONV3-128: 112x112x128内存: 112*112*128=1.6M权重:(3*3*128)*128 =147 456
POOL2: 56x56x128内存: 56*56*128=400K权重:0
CONV3-256: 56x56x256内存: 56*56*256=800K权重:(3*3*128)*256 = 294,912
..。
当滤波器的数量从128增加到256(在CONV3-256层中)之后,它具有上述激活(和误差增量)和权重的维度。但是,由于滤波器的深度(本例中为128)与其增量的第3维(在本例中为256)不同,我如何对这两个阵列进行卷积?非常感谢帮助的人。我觉得这令人困惑,我在网上找不到太多的帮助。它大多被解释得很糟糕,或者被认为是“已知的”。
发布于 2019-07-13 11:50:40
你是对的,三角洲和重量不会有相同的深度。但是滤波器的数目等于三角形的深度。我的意思是,您可以有一个大小的过滤器(5x5x2)和大小的三角形(20x20x4),但是这里的问题是,实际上您将有四个过滤器。您可以通过构建一个小型CNN来检查这一点,除非此条件为真,否则您将看到forwrad通行证无效。
https://stackoverflow.com/questions/42588047
复制相似问题