Xception
Posted Coding_ML
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xception相关的知识,希望对你有一定的参考价值。
Xception(Deep Learning with Depth-wise Separable convolutions)——google Inception-V3
Xception 并不是真正意义上的轻量化模型,只是其借鉴 depth-wise convolution,而 depth-wise convolution 又是上述几个轻量化模型的关键点,所以在此一并介绍,其思想非常值得借鉴。
创新点:
- 借鉴depth-wise convolution 改进 Inception V3
Inception的假设是,卷积的时候要将通道的卷积和空间的卷积进行分离,这样比较好。
Inception V3 ——> Xception
下图 1 是 Inception module,图 2 是作者简化了的 inception module(就是只保留 1*1 的那条「路」,如果带着 avg pool,后面怎么进一步假设嘛~)
假设出一个简化版 inception module 之后,再进一步假设,把第一部分的 3 个 11 卷积核统一起来,变成一个 11 的,后面的 3 个 33 的分别「负责」一部分通道,如图 3 所示; 最后提出「extreme」version of an Inception,module Xception 登场,,先用 11 卷积核对各通道之间(cross-channel)进行卷积,如图 4 所示,
作者说了,这种卷积方式和 depth-wise convolution 几乎一样。
Xception 是借鉴 Rigid-Motion Scatteringfor Image Classification 的 Depth-wise convolution,是因为 Xception 与原版的 Depth-wise convolution 有两个不同之处
- 第一个:原版 Depth-wise convolution,先逐通道卷积,再 11 卷积; 而 Xception 是反过来,先 11 卷积,再逐通道卷积;
- 第二个:原版 Depth-wise convolution 的两个卷积之间是不带激活函数的,而 Xception 在经过 1*1 卷积之后会带上一个 Relu 的非线性激活函数;
Xception 结构如上图所示,共计 36 层分为 Entry flow;Middle flow;Exit flow。。
Entry flow 包含 8 个 conv;Middle flow 包含 3*8 =24 个 conv;Exit flow 包含 4 个 conv,所以 Xception 共计 36 层。
Xception 小结:
Xception 是基于 Inception-V3,并结合了 depth-wise convolution,这样做的好处是提高网络效率,以及在同等参数量的情况下,在大规模数据集上,效果要优于 Inception-V3。这也提供了另外一种「轻量化」的思路:在硬件资源给定的情况下,尽可能的增加网络效率和性能,也可以理解为充分利用硬件资源。
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">
以上是关于Xception的主要内容,如果未能解决你的问题,请参考以下文章