首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用简单Python代码理解神经网络中的卷积块

在本文中,我想引导您完成Keras中实现的最新架构的重要卷积模块的精选列表。当您在GitHub上寻找流行架构的实现时,您会惊讶于它们包含了多少代码。使用额外的参数包含足够的注释和增强模型是很好的实践,但同时这也会分散体系结构的本质。

ResNet是由微软的研究人员引入的一种架构,该架构允许神经网络拥有任意多的层,同时仍能提高模型的准确性。defresidual_block(x,f=32,r=4):m=conv(x,f//r,k=1)m=conv(m,f//r,k=3)m=conv(m,f,k=1)returnadd([x,m])想法是将初始激活添加到卷积块的输出。

左:ResNet块-右:RexNeXt块具有大致相同的参数复杂度使用上面的图像来获取正在发生的事情的可视化表示,或者复制这些片段,在Keras中自己构建一个小的网络。顺便说一下,如果基数等于通道数我们会得到一个叫做深度可分离卷积的东西。自从引入Xception异常体系结构以来,这些问题得到了广泛的关注。DenseBlock

DenseBlock是残差块的极端版本,其中每个卷积层获得块中所有先前卷积层的输出。首先,我们将输入激活添加到列表中,之后我们进入循环,遍历块的深度。每个卷积输出也连接到列表,以便随后的迭代获得越来越多的输入要素映射。该方案持续到达到期望的深度。

Squeeze-andExcitationModuleSENet引入了一个非常简单的模块,可以添加到任何现有的体系结构中。它创建了一个微小的神经网络,学习了如何根据输入对每个滤波器进行加权。正如你所看到的,它本身不是卷积块,但因为它可以添加到任何卷积块并可能增强其性能,我想将它添加到mix中。

通过手工,作者定义了不同类型的卷积和池化层的搜索空间,每个层都有不同的可能设置。他们还定义了这些层如何平行排列,顺序排列以及如何添加或连接这些层。一旦定义了这一点,他们就建立了一个基于递归神经网络的强化学习(RL)算法,如果特定的设计方案在CIFAR-10数据集上表现良好,该算法会得到奖励。由此产生的架构不仅在CIFAR-10上表现良好,而且还在ImageNet上实现了最先进的结果。

作者提出了实际做与bottleneckresidualblock相反的想法。它们使用廉价的1x1卷积增加了通道数,因为以下可分离卷积层已经大大减少了参数的数量。它会在将频道添加到初始激活之前关闭频道。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180729A04ZAS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券