论文阅读笔记:Xception: Deep Learning with Depthwise Separable Convolutions

本文介绍Xception网络,一种基于深度可分离卷积的深度学习模型。该模型在InceptionV3基础上提出,通过深度可分离卷积提升模型效率。文章详细解析了Xception的核心思想、网络结构,并给出了实验结果及TensorFlow实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文阅读笔记:Xception: Deep Learning with Depthwise Separable Convolutions

论文下载地址:Xception: DeepLearning with Depthwise Separable Convolutions


本文主要包含如下内容:


核心思想


  这篇文章主要在 Inception V3 的基础上提出了 Xception(Extreme Inception),基本思想就是设计了通道分离式卷积 depthwise separable convolution operation


网络结构


   Inception 结构
  我们可以将上面网络看作,把整个输入做1*1卷积,然后切成三段,分别3*3卷积后相连,如下图,两种形式是等价的:
   Inception 结构
  现在我们想,如果不是分成三段,而是分成 5 段或者更多,那模型的表达能力是不是更强呢?于是我们就切更多段,切到不能再切了,正好是 Output channels 的数量(极限版本):
   Inception 结构
  于是,就有了深度卷积 depthwise convolution。文章中将 depthwise separable convolution 分成两步,一步叫depthwise convolution,另一步是 pointwise convolution。深度卷积是对输入的每一个 channel 独立的用对应 channel 的卷积核去卷积,假设卷积核的 shape 是 [filter_height, filter_width, in_channels, channel_multiplier],那么每个 in_channel 会输出 channel_multiplier 那么多个通道,最后的 feature map 就会有 in_channels * channel_multiplier 个通道了。原文在深度卷积后面又加了 pointwise convolution,这个 pointwise convolution 就是 1*1 的卷积,可以看做是对那么多分离的通道做了个融合。
  

  Xception
  Xception 结构由36个卷积层组成网络的特征提取基础。我们的评估实验中只进行图像分类,因此我们在卷积之后使用了逻辑回归层。可选的,也可以在逻辑回归层之前加入完全连接层。36个卷积层被分成14个模块,除最后一个外,模块间有线性残差连接。
  depthwise convolution

  depthwise convolution


实验结果


  精度较Inception V3有提高,ImageNET上的精度如下:
  
  Table2表示几种网络结构在JFT数据集上的对比。大数据上的提升会比Table1好一点。:
  


tensorflow实现


  参考博客

    #tensorflow 1.2.0 python 2.7
    tf.nn.depthwise_conv2d(input,filter,strides,padding,rate=None,name=None,data_format=None)
    #结果返回一个Tensor,shape为[batch, out_height, out_width, in_channels * channel_multiplier],注意这里输出通道变成了in_channels * channel_multiplier
  • name:指定操作的名字
  • data_format:指定数据格式
  • input:指需要做卷积的输入图像,要求是一个4维Tensor,具有[batch, height, width, in_channels]这样的shape,具体含义是[训练时batch的图片数量, 图片高度, 图片宽度, 图像通道数]
  • filter:相当于CNN中的卷积核,要求是一个4维Tensor,具有[filter_height, filter_width, in_channels, channel_multiplier]这样的shape,具体含义是[卷积核的高度,卷积核的宽度,输入通道数,输出卷积乘子],这里第三维in_channels,就是参数input的第四维
  • strides:卷积的滑动步长。
  • padding:string类型的量,只能是”SAME”,”VALID”其中之一,这个值决定了不同边缘填充方式。
  • rate:rate=1时,此时这个函数就变成了普通卷积,并非空洞卷积。

  空洞卷积atrous convolutions又名扩张卷积dilated convolutions,向卷积层引入了一个称为 “扩张率dilation rate”的新参数,该参数定义了卷积核处理数据时各值的间距。
  

### 回答1: Xception是一种深度学习模型,它使用深度可分离卷积来提高模型的效率和准确性。深度可分离卷积是一种卷积操作,它将标准卷积分成两个步骤:深度卷积和逐点卷积。深度卷积在每个输入通道上执行卷积,而逐点卷积在每个通道之间执行卷积。这种方法可以减少计算量和参数数量,同时提高模型的准确性。Xception模型在图像分类、目标检测和语义分割等任务中表现出色。 ### 回答2: Xception是一个基于深度可分离卷积的深度学习架构。深度学习在计算机视觉和自然语言处理等领域取得了巨大成功,但也面临着计算复杂性和模型尺寸庞大的问题。Xception通过引入深度可分离卷积来解决这些问题。 深度可分离卷积由分离卷积和逐点卷积两个步骤组成。首先,分离卷积将输入张量分别应用于空间和通道维度上的低秩张量。通过这种方式,模型可以分别学习特征的空间位置和通道之间的依赖关系。其次,逐点卷积将通道维度上的低秩张量应用于输出特征图。逐点卷积允许每个通道单独学习特征。 通过使用深度可分离卷积,Xception减少了参数的数量,并提高了模型的计算效率。与传统卷积相比,深度可分离卷积在减少计算量的同时,还可以提高模型的表示能力。这意味着Xception可以更好地捕捉和表示输入数据中的特征。 在实践中,Xception在图像分类、目标检测和语义分割等任务上都取得了非常好的表现。由于其较小的模型尺寸和高效的计算性能,Xception成为了很多研究者和工程师首选的深度学习架构之一。 总而言之,Xception通过引入深度可分离卷积来解决深度学习中的计算复杂性和模型尺寸庞大的问题。它减少了模型参数的数量、提高了模型的计算效率,同时又保持了较高的表示能力。作为一种强大的深度学习架构,Xception在多个领域具有广泛的应用和研究价值。 ### 回答3: Xception是一种深度学习模型,使用深度可分离卷积的方法来提高模型的准确性和效率。深度可分离卷积是一种卷积操作,由分离卷积和逐元素卷积两个步骤组成。 在传统卷积中,输入图像通过一个卷积核进行卷积操作,得到特征图。而在深度可分离卷积中,卷积操作被分解成两个步骤。首先,输入图像通过一个分离卷积核进行深度卷积,从而获取特征深度信息。然后,逐元素卷积操作被应用于分离卷积的输出,以获取空间信息。这种分离的方式减少了计算量和参数量,提高了模型的效率。 Xception模型使用了这种深度可分离卷积的结构。相比于传统的卷积方式,Xception模型能够更好地捕捉到输入图像中的细节信息。同时,由于深度卷积和逐元素卷积的分离,Xception模型的参数量大大减少,使得模型更加轻量化,便于在移动设备等资源受限的场景中应用。 通过对ImageNet大规模图像数据库进行训练,Xception模型取得了很好的性能。它在图像分类、目标检测和语义分割等任务上都取得了优秀的结果。同时,Xception模型也为其他相关任务,如迁移学习和特征提取等,提供了一个有力的基础。 总的来说,Xception是一种利用深度可分离卷积的深度学习模型,它在提高准确性和效率方面取得了显著的进展。它的设计和性能使得它成为了计算机视觉领域一个重要的技术突破。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值