Xception

Paper : Xception: Deep Learning with Depthwise Separable Convolutions
Code : unofficial

摘要

如果先看了这篇文章blog,那么Xception其实就是一种特例情况。Xception 可以从组卷积的角度进行重新理解,而不是考虑Xception自己提出的“depthwise separate convolution”

网络结构

在 Inception 中,特征可以通过1*1卷积,3*3卷积,5*5卷积,pooling 等进行提取,Inception 结构将特征类型的选择留给网络自己训练,也就是将一个输入同时输给几种提取特征方式,然后做 concat

image.png

对 Inception-v3 进行简化,去除 Inception-v3 中的 avg pool 后,输入的下一步操作就都是 1*1 卷积:

image.png

提取 1*1 卷积的公共部分,之后 3*3 相当于对 1*1 输出的不同通道分别进行卷积

image.png

极端情况下,对 1*1 卷积(pointwise convolution)的输出的每个通道分别进行3*3卷积(spatial convolution),被称作是Xception

Depthwise Separable Convolution : 相比于Xception将pointwise conv与spatial conv交换,先对每一通道进行conv3*3,再将输出结果concatenate后通过conv1*1

作者发现,在Xception模块中,用于学习空间相关性的 3*3 的卷积,和用于学习通道间相关性的 1*1 卷积之间,不使用非线性激活函数时,收敛过程更快、准确率更高

image.png

Xception 结构如下

在这里插入图片描述

核心观点

  1. 通道之间的相关性 与 空间相关性 最好要分开处理。采用 Separable Convolution来替换原来 Inception-v3中的卷积操作。
  2. 将组卷积的思想引入到神经网络中,为IGCNets的提出打下了基础
Xception在PyTorch中有相应的实现和使用方法。 ### 使用方法 在使用Xception模型前,需要进行环境配置。要确保安装了Anaconda和Python 3.6,然后克隆项目仓库: ```bash git clone https://github.com/jfzhang95/pytorch-deeplab-xception.git cd pytorch-deeplab-xception ``` 此项目是基于PyTorch框架实现的DeepLab v3+模型,支持使用Modified Aligned Xception作为骨干网络,可以用于训练Pascal VOC、SBD、Cityscapes和COCO等数据集 [^2][^5]。 ### 代码实现 以下是Xception在PyTorch中的代码实现示例: ```python from torch import nn from torch.nn import Conv2d, BatchNorm2d class Xception(nn.Module): def __init__(self, inp, oup): super(Xception, self).__init__() # depthwise self.conv1 = Conv2d(inp, inp, kernel_size=(3, 3), stride=(1, 1), padding=1, groups=inp) self.bn1 = BatchNorm2d(inp) # 输入为上一层输出的通道数 # pointwise self.conv2 = Conv2d(inp, oup, (1, 1)) # Stride of the convolution. Default: 1 self.bn2 = BatchNorm2d(oup) self.relu = nn.ReLU() def forward(self, input): output = self.conv1(input) output = self.bn1(output) output = self.relu(output) output = self.conv2(output) output = self.bn2(output) output = self.relu(output) return output ``` 以上代码定义了一个Xception模块,包括深度可分离卷积(depthwise)和逐点卷积(pointwise),并在`forward`方法中定义了前向传播过程 [^4]。 ### 相关资料 可以参考的相关资料有关于PyTorch - DeepLab - Xception的内容,该项目是一个基于PyTorch框架实现的DeepLab v3+模型,支持使用Modified Aligned Xception作为骨干网络,能用于训练多个数据集,其主要编程语言是Python,依赖于PyTorch框架 [^1][^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值