http://knowyourmeme.com/memes/we-need-to-go-deeper),连接到这幅图片上,如果你看过Inception盗梦空间)这个电影,你应该能看懂这个由来。作者其实是通过它来表明了建立更深的神经网络的决心,他们正是这样构建了Inception。我想一般研究论文,通常不会引用网络流行模因(梗),但这里显然很合适。

最后总结一下,如果你理解了Inception模块,你就能理解Inception网络,无非是很多个Inception模块一环接一环,最后组成了网络。自从Inception模块诞生以来,经过研究者们的不断发展,衍生了许多新的版本。所以在你们看一些比较新的Inception算法的论文时,会发现人们使用这些新版本的算法效果也一样很好,比如Inception V2V3以及V4,还有一个版本引入了跳跃连接的方法,有时也会有特别好的效果。但所有的这些变体都建立在同一种基础的思想上,在之前的视频中你就已经学到过,就是把许多Inception模块通过某种方式连接到一起。通过这个视频,我想你应该能去阅读和理解这些Inception的论文,甚至是一些新版本的论文。

直到现在,你已经了解了许多专用的神经网络结构。在下节视频中,我将会告诉你们如何真正去使用这些算法来构建自己的计算机视觉系统,我们下节视频再见。

https://github.com/KaimingHe/deep-residual-networks

假设你对残差网络感兴趣,那就让我们搜索GitHub上的ResNets,那么你可以在GitHub看到很多不同的ResNet的实现。我就打开这里的第一个网址,这是一个ResNets实现的GitHub资源库。在很多GitHub的网页上往下翻,你会看到一些描述,这个实现的文字说明。这个GitHub资源库,实际上是由ResNet论文原作者上传的。这些代码,这里有麻省理工学院的许可,你可以点击查看此许可的含义,MIT许可是比较开放的开源许可之一。我将下载代码,点击这里的链接,它会给你一个URL,通过这个你可以下载这个代码。

我点击这里的按钮(Clone or download),将这个URL复制到我的剪切板里。

(整理者注:NG此处使用的是linux系统的bash命令行,对于win10系统,可以开启linux子系统功能,然后在win10应用商店下载ubuntu安装,运行CMD,输入命令bash即可进入linuxbash命令行)

接着到这里,接下来你要做的就是输入git clone,接着粘贴URL,按下回车,几秒之内就将这个资源库的副本下载到我的本地硬盘里。

让我们进入目录,让我们看一下,比起Windows,我更习惯用Mac,不过没关系,让我们试一下,让我们进入prototxt,我认为这就是存放这些网络文件的地方。让我们看一下这个文件。因为这个文件很长,包含了ResNet里101层的详细配置。我记得,从这个网页上看到这个特殊实现使用了Caffe框架。但如果你想通过其它编程框架来实现这一代码,你也可以尝试寻找一下。

如果你在开发一个计算机视觉应用,一个常见的工作流程是,先选择一个你喜欢的架构,或许是你在这门课中学习到的,或者是你从朋友那听说的,或者是从文献中看到的,接着寻找一个开源实现,从GitHub下载下来,以此基础开始构建。这样做的优点在于,这些网络通常都需要很长的时间来训练,而或许有人已经使用多个GPU,通过庞大的数据集预先训练了这些网络,这样一来你就可以使用这些网络进行迁移学习,我们将在下一节课讨论这些内容。

当然,如果你是一名计算机视觉研究员,从零来实现这些,那么你的工作流程将会不同,如果你自己构建,那么希望你将工作成果贡献出来,放到开源社区。因为已经有如此多计算机视觉研究者为了实现这些架构做了如此之多的工作,我发现从开源项目上开始是一个更好的方法,它也确实是一个更快开展新项目的方法。

Deep Residual Learning for Image Recognition (2015)
  • Francois Chollet's github repository: https://github.com/fchollet/deep-learning-models/blob/master/resnet50.py