Resnet小记
ResNet之Deeper Bottleneck Architectures
去年的时候,微软一帮子人搞了个152层的神经网络!WTF!详情见论文!
论文太长了,今天只分析一下ResNet的核心内容之一,即“Deeper Bottleneck Architectures”(以下简称DBA),论文里的原图是这样的:
说实话,画的不怎么样,右边的网络结构就是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全貌!
来看50-layer那一栏,在进入到DBA层之前的网络比较简单,分别是:①卷积层"7×7, 64, stride 2"、②BN层、③ReLU层、④池化层"3×3 max pool, stride 2",最终的输出结果是一个大小为 [batch_size, height, width, kernels] 矩阵,很简单,不再赘述,关于BN可以参考这里。
我们深入一下,再看第一个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],如下图
图已经说的很清楚啦!之后的网路就是N个上图的结构叠加!我不太想做过多的说明了,一切尽在图中!!
最新文章
- word201612012
- PHP Switch case 条件并用实例
- mysql判断一条记录是否存在,如果存在,则更新此语句,如果不存在,则插入
- try catch finally的执行顺序(有return的情况下)
- IP欺骗原理与过程分析
- opencv 图像阴影检测
- Linux下文件的压缩与打包
- jq选择器 第一部分
- Java解析XMl文件之SAX和DOm方法
- 关于const限定符
- POJ1308 Is It A Tree?
- C# .NET更智能的数据库操作的封装完整版(重构)
- bootstrap table的样式
- 我的CSS
- Centos7 安装gitLab
- selenium——鼠标事件
- IoT experitment
- 同步IO、异步IO、阻塞IO、非阻塞IO之间的联系与区别
- SQL server类型转换
- 理解javascript中的回调函数(callback)【转】