ResNet之Deeper Bottleneck Architectures

2016年12月28日 22:17:48

阅读数:2350

去年的时候,微软一帮子人搞了个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个上图的结构叠加!我不太想做过多的说明了,一切尽在图中!!

原文链接:http://www.jianshu.com/p/e502e4b43e6d

Resnet小记的更多相关文章

  1. [原]Paste.deploy 与 WSGI, keystone 小记

    Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...

  2. MySql 小记

    MySql  简单 小记 以备查看 1.sql概述 1.什么是sql? 2.sql发展过程? 3.sql标准与方言的关系? 4.常用数据库? 5.MySql数据库安装? 2.关键概念 表结构----- ...

  3. Git小记

    Git简~介 Git是一个分布式版本控制系统,其他的版本控制系统我只用过SVN,但用的时间不长.大家都知道,分布式的好处多多,而且分布式已经包含了集中式的几乎所有功能.Linus创造Git的传奇经历就 ...

  4. 广州PostgreSQL用户会技术交流会小记 2015-9-19

    广州PostgreSQL用户会技术交流会小记 2015-9-19 今天去了广州PostgreSQL用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用PostgreSQL-X2 ...

  5. 东哥读书小记 之 《MacTalk人生元编程》

         一直以来的自我感觉:自己是个记性偏弱的人.反正从小读书就喜欢做笔记(可自己的字写得巨丑无比,尼玛不科学呀),抄书这事儿真的就常发生俺的身上. 因为那时经常要背诵课文之类,反正为了怕自己忘记, ...

  6. Paypal支付小记

    Paypal支付小记 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !impo ...

  7. linux 下cmake 编译 ,调用,调试 poco 1.6.0 小记

    上篇文章 小记了: 关于 Poco::TCPServer框架 (windows 下使用的是 select模型) 学习笔记. http://www.cnblogs.com/bleachli/p/4352 ...

  8. mongodb入门学习小记

    Mongodb 简单入门(个人学习小记) 1.安装并注册成服务:(示例) E:\DevTools\mongodb3.2.6\bin>mongod.exe --bind_ip 127.0.0.1 ...

  9. 【日常小记】统计后缀名为.cc、.c、.h的文件数【转】

    转自:http://www.cnblogs.com/skynet/archive/2011/03/29/1998970.html 在项目开发时,有时候想知道源码文件中有多少后缀名为.cc..c..h的 ...

随机推荐

  1. Android数据库高手秘籍(零)——前言

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/38083103 在我刚開始接触Android的时候甚至都不敢相信.Android系统 ...

  2. Fluent UDF【4】:C语言

    Fluent UDF利用的是C语言,本文简单介绍在UDF中经常会用到的C语言常识. 本文部分内容来自UDF手册. 1 C语言中的注释 C语言中的注释利用/*及*/来实现.例如: /*这是一个注释*/ ...

  3. Vue项目页面跳转时候的,浏览器窗口上方的进度条显示

    1.安装: cnpm install --save nprogress 2.在main.js中引入: import NProgress from 'nprogress' import 'nprogre ...

  4. 【Ubuntu】服务器状态命令

    序号 命令名称 命令 1 查看Ubuntu版本 cat /etc/issue2 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| s ...

  5. java多线程20 : ReentrantLock中的方法 ,公平锁和非公平锁

    公平锁与非公平锁 ReentrantLock有一个很大的特点,就是可以指定锁是公平锁还是非公平锁,公平锁表示线程获取锁的顺序是按照线程排队的顺序来分配的,而非公平锁就是一种获取锁的抢占机制,是随机获得 ...

  6. C#学习笔记(10)——再谈委托,不同国家问候的例子

    说明(2017-6-14 09:08:38): 1. 首先是一个简单的委托 (1)命名空间下定义一个委托MyDel: public delegate void MyDel(string name); ...

  7. [转]Oracle存储过程给变量赋值的方法

    原文地址:http://blog.csdn.net/drbing/article/details/51821262 截止到目前我发现有三种方法可以在存储过程中给变量进行赋值:1.直接法     :=  ...

  8. 使用xcode 7 开发cocos2dx问题

    使用xcode 7 开发cocos2dx问题 近期在学习cocos2dx使用xcode 7 bate 最为开发工具,由于xcode 7 能够不用增加开发人员就能真机測试啦,哈哈.可是当我创建好coco ...

  9. open source Swift, Objective-C and the next 20 years of development

    Q&AApple's Craig Federighi talks open source Swift, Objective-C and the next 20 years of develop ...

  10. 【WPF/C#】图层筛选/拾取——Color Picker

    文章标题实在不懂怎么表述才清楚. 描述问题:多个图片(图层)重叠时,如何通过鼠标点击来拾取到相应的图层.因为图层中会有很多空白的地方(比如图片四周),要求是获取鼠标点击位置的像素颜色值,如果为空白时或 ...