2.8 使用开源的实现方案-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

使用开源的实现方案 (Using Open-source Implementations)

你现在已经学过几个非常有效的神经网络和ConvNet架构,在接下来的几段视频中我想与你分享几条如何使用它们的实用性建议,首先从使用开放源码的实现开始。

事实证明很多神经网络复杂细致,因而难以复制,因为一些参数调整的细节问题,例如学习率衰减等等,会影响性能。所以我发现有些时候,甚至在顶尖大学学习AI或者深度学习的博士生也很难通过阅读别人的研究论文来复制他人的成果。幸运的是有很多深度学习的研究者都习惯把自己的成果作为开发资源,放在像GitHub之类的网站上。当你自己编写代码时,我鼓励你考虑一下将你的代码贡献给开源社区。如果你看到一篇研究论文想应用它的成果,你应该考虑做一件事,我经常做的就是在网络上寻找一个开源的实现。因为你如果能得到作者的实现,通常要比你从头开始实现要快得多,虽然从零开始实现肯定可以是一个很好的锻炼。

如果你已经熟悉如何使用GitHub,这段视频对你来说可能没什么必要或者没那么重要。但是如果你不习惯从GitHub下载开源代码,让我来演示一下。

(整理者注:ResNets实现的GitHub地址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,通过庞大的数据集预先训练了这些网络,这样一来你就可以使用这些网络进行迁移学习,我们将在下一节课讨论这些内容。

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

课程板书

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原创文章 297 获赞 12 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_36815313/article/details/105780272
今日推荐