美文网首页tensorflow相关tensorflow
ResNet之Deeper Bottleneck Archite

ResNet之Deeper Bottleneck Archite

作者: Traphix | 来源:发表于2016-06-30 11:19 被阅读6383次

    去年的时候,微软一帮子人搞了个152层的神经网络!WTF!详情见论文

    论文太长了,今天只分析一下ResNet的核心内容之一,即“Deeper Bottleneck Architectures”(以下简称DBA),论文里的原图是这样的:

    Deeper Bottleneck Architectures

    说实话,画的不怎么样,右边的网络结构就是DBA啦!关于这张图,论文的作者是这么说的

    Because of concerns on the training time that we can afford, we modify the building block as a bottleneck design.

    就是说,作者考虑到自己GPU的计算能力有限,所以才采用了bottleneck design!说到底还是没钱上1080呗!不过2015年的时候1080还没出来,那他为什么不上TITAN,还是没钱呗!
    言归正传,换成bottleneck design以后,网络的参数减少了很多,训练也就相对容易一些。然后我们再看一下原作中的ResNet全貌!

    ResNet Architecture
    来看50-layer那一栏,在进入到DBA层之前的网络比较简单,分别是:①卷积层"7×7, 64, stride 2"、②BN层、③ReLU层、④池化层"3×3 max pool, stride 2",最终的输出结果是一个大小为 [batch_size, height, width, kernels] 矩阵,很简单,不再赘述,关于BN可以参考这里
    我们深入一下,再看第一个DBA内部,如下图 Inside a DBA
    很显然,总共3×3=9层,可是原作毕竟篇幅有限,网络实现的细节不是很清楚,于是我就参考了Ryan Dahl的tensorflow-resnet程序源码,按照Ryan Dahl实现的ResNet,画出了DBA内部网络的具体实现,这个DBA是全网络中第一个DBA的前三层,输入的image大小为[batch_size,56,56,64],输出大小为[batch_size,56,56,256],如下图 Ryan Dahl's DBA

    图已经说的很清楚啦!之后的网路就是N个上图的结构叠加!我不太想做过多的说明了,一切尽在图中!!

    相关文章

      网友评论

      • 牧点点:将的很棒,非常感谢
      • 9a7f5e15f6d1:想问下56*56的map经过3*3的卷积核后输出为什么还是56*56
        3b6bbda73426:一般需要concatenation的,都是用padding=“SAME”,stride=1保证维度不变。
        883f881f4132:两边是有补零的,来保证尺寸大小不变
        Traphix:@汤小智
        最近比较忙,深度学习都快淡忘了。
        卷积以后的输出还是56*56原因是padding=1,我记得我之前的文章有讲过卷积计算,如果你感兴趣的话可以看看。

      本文标题:ResNet之Deeper Bottleneck Archite

      本文链接:https://www.haomeiwen.com/subject/tgnxjttx.html