7 deep-learning caffe conv-neural-network
我已经阅读了有关组参数的文档:
group(g)[default 1]:如果g> 1,我们将每个过滤器的连接限制为输入的子集.具体地,输入和输出通道被分成g组,第i个输出组通道将仅连接到第i个输入组通道.
但首先,我并不完全明白他们的意思.其次,我为什么要使用它.谁能帮我解释一下好一点?
据我了解,它意味着:
如果我将g设置为大于1,则输入和输出通道将分组.但究竟是怎么做到的?如果我将它设置为20并且我的输入为40,那么我将需要20个组?如果输出为50,我将有一组20和一组30?
其次,为什么我会使用[分组]?
这最初是作为论文中的优化提出的,它引发了神经网络流行的当前循环:
Alex Krizhevsky,Ilya Sutskever和Geoffrey E. Hinton." 使用深度卷积神经网络进行Imagenet分类." 在神经信息处理系统的进展中,第1097-1105页.2012.
图2显示了如何使用分组进行该工作.caffe的作者最初添加了这种能力,因此他们可以复制AlexNet架构.然而,在其他情况下,分组继续表现为有益.
例如Facebook和Google都发布了一些论文,这些论文基本上表明分组可以大大减少资源使用,同时有助于保持准确性.可以在这里看到Facebook论文:( ResNeXt)和Google论文可以在这里找到:(MobileNets)
参数给出了组的数量,而不是大小.如果您有40个输入并将g设置为20,那么您将获得20个"通道",每个通道有2个通道; 有50个输出,你将得到10组2组和10组3.
更常见的情况是,您分成少数组,例如2.在这种情况下,您将有两个处理"通道"或组.对于你提到的40 => 50层,每组将有20个输入和25个输出.每个层将分成两半,每组前向和后向传播仅在其自己的一半内工作,对于组参数适用的层的范围(我认为它一直到最后一层).
处理的优势在于,您可以使用2组20 ^ 2个连接,而不是40 ^ 2个输入连接.这使处理速度提高了大约2倍,收敛进度损失很小.
| 归档时间: |
|
| 查看次数: |
4997 次 |
| 最近记录: |