Xception算法详解

Xception是Google为改进Inception v3而提出的深度学习模型,它使用depthwise separable convolution来减少计算复杂度并提升性能。深度wise卷积通过单独处理每个通道的特征,接着使用pointwise卷积结合这些信息。与Inception结构相比,Xception通过residual connections简化了网络,并在不显著增加复杂度的情况下实现了更好的效果。
摘要由CSDN通过智能技术生成

论文:Xception: Deep Learning with Depthwise Separable Convolutions
论文链接:https://arxiv.org/abs/1610.02357

算法详解:
Xception是google继Inception后提出的对Inception v3的另一种改进,主要是采用depthwise separable convolution来替换原来Inception v3中的卷积操作。

要介绍Xception的话,需要先从Inception讲起,Inception v3的结构图如下Figure1。当时提出Inception的初衷可以认为是:特征的提取和传递可以通过1*1卷积,3*3卷积,5*5卷积,pooling等,到底哪种才是最好的提取特征方式呢?Inception结构将这个疑问留给网络自己训练,也就是将一个输入同时输给这几种提取特征方式,然后做concat。Inception v3和Inception v1(googleNet)对比主要是将5*5卷积换成两个3*3卷积层的叠加。

这里写图片描述

于是从Inception v3联想到了一

Xception(Extreme Inception算法是由Google在2017年提出的一种深层卷积神经网络模型。它是Inception模型的进一步改良,采用了深度可分离卷积来提高模型的性能。以下是Xception算法的实现: ```python import tensorflow.keras.layers as layers from tensorflow.keras.models import Model def xception(input_shape): img_input = layers.Input(shape=input_shape) # Entry block x = layers.Conv2D(32, 3, strides=2, padding='same')(img_input) x = layers.BatchNormalization()(x) x = layers.Activation('relu')(x) x = layers.Conv2D(64, 3, padding='same')(x) x = layers.BatchNormalization()(x) x = layers.Activation('relu')(x) previous_block_activation = x for size in [128, 256, 728]: x = layers.Activation('relu')(x) x = layers.SeparableConv2D(size, 3,padding='same')(x) x = layers.BatchNormalization()(x) x = layers.Activation('relu')(x) x = layers.SeparableConv2D(size, 3,padding='same')(x) x = layers.BatchNormalization()(x) x = layers.MaxPooling2D(3, strides=2,padding='same')(x) residual = layers.Conv2D(size, 1, strides=2,padding='same')(previous_block_activation) x = layers.add([x, residual]) previous_block_activation = x x = layers.SeparableConv2D(1024, 3,padding='same')(x) x = layers.BatchNormalization()(x) x = layers.Activation('relu')(x) x = layers.GlobalAveragePooling2D()(x) x = layers.Dense(1024, activation='relu')(x) x = layers.Dropout(0.5)(x) # Output layer output = layers.Dense(10, activation='softmax')(x) model = Model(img_input, output) return model ``` 这是一个使用Tensorflow实现的Xception算法,可以用于图像分类任务。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值