1.Xception网络简介

Xception网络是在2017提出的轻量型网络,兼顾了准确性和参数量,Xception----->Extreme(极致的) Inception。

2.创新点

引入类似深度可分离卷积:Depthwise Separable Convolution。
为什么说是类似深度可分离卷积呢?

1)深度可分离卷积的实现过程:

2)Xception深度可分离卷积的实现过程:


Xception的深度可分离卷积与传统的深度可分离卷积的步骤是相反的,但是原论文作者说,两者的性能差异不大,最终的结果差异也不大,因此在实现的时候还是用的传统的深度可分离卷积。

3.网络模型

4.网络实现

def Xcepiton(nb_class,input_shape):input_ten = Input(shape=input_shape)#block 1#299,299,3  ->  149,149,64x = Conv2D(32,(3,3),strides=(2,2),use_bias=False)(input_ten)x = BatchNormalization()(x)x = Activation('relu')(x)x = Conv2D(64,(3,3),use_bias=False)(x)x = BatchNormalization()(x)x = Activation('relu')(x)#block2#149,149,64  ->  75,75,128residual = Conv2D(128,(1,1),strides=(2,2),padding='same',use_bias=False)(x)residual = BatchNormalization()(residual)x = SeparableConv2D(128,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = Activation('relu')(x)x = SeparableConv2D(128,(3,3),padding='same')(x)x = BatchNormalization()(x)x = MaxPooling2D((3,3),strides=(2,2),padding='same')(x)x = layers.add([x,residual])#block3#75,75,128  ->  38,38,256residual = Conv2D(256,(1,1),strides=(2,2),padding='same',use_bias=False)(x)residual = BatchNormalization()(residual)x = Activation('relu')(x)x = SeparableConv2D(256,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = Activation('relu')(x)x = SeparableConv2D(256,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = MaxPooling2D((3,3),strides=(2,2),padding='same')(x)x = layers.add([x,residual])#block4#38,38,256  ->  19,19,728residual = Conv2D(728,(1,1),strides=(2,2),padding='same',use_bias=False)(x)residual = BatchNormalization()(residual)x = Activation('relu')(x)x = SeparableConv2D(728,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = Activation('relu')(x)x = SeparableConv2D(728,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = MaxPooling2D((3,3),strides=(2,2),padding='same')(x)x = layers.add([x,residual])#block 5  -  12#19,19,728  ->  19,19,728for i in range(8):residual = xx = Activation('relu')(x)x = SeparableConv2D(728,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = Activation('relu')(x)x = SeparableConv2D(728,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = Activation('relu')(x)x = SeparableConv2D(728,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = layers.add([x,residual])#block13  #19,19,728  ->  10,10,1024residual = Conv2D(1024,(1,1),strides=(2,2),padding='same',use_bias=False)(x)residual = BatchNormalization()(residual)x = Activation('relu')(x)x = SeparableConv2D(728,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = Activation('relu')(x)x = SeparableConv2D(1024,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = MaxPooling2D((3,3),strides=(2,2),padding='same')(x)x = layers.add([x,residual])#block14#10,10,1024  ->10,10,2048x = SeparableConv2D(1536,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = Activation('relu')(x)x = SeparableConv2D(2048,(3,3),padding='same',use_bias=False)(x)x = BatchNormalization()(x)x = Activation('relu')(x)x = GlobalAveragePooling2D()(x)output_ten = Dense(nb_class,activation='softmax')(x)model = Model(input_ten,output_ten)return model
model_xception = Xcepiton(24,(img_height,img_width,3))
model_xception.summary()


训练参数并不多,是一个比较经典的轻量级网络。
努力加油a啊

深度学习之基于Tensorflow2.0实现Xception网络相关推荐

  1. 深度学习之基于Tensorflow2.0实现AlexNet网络

    在之前的实验中,一直是自己搭建或者是迁移学习进行物体识别,但是没有对某一个网络进行详细的研究,正好人工智能课需要按组上去展示成果,借此机会实现一下比较经典的网络,为以后的研究学习打下基础.本次基于Te ...

  2. 深度学习之基于Tensorflow2.0实现ResNet50网络

    理论上讲,当网络层数加深时,网络的性能会变强,而实际上,在不断的加深网络层数后,分类性能不会提高,而是会导致网络收敛更缓慢,准确率也随着降低.利用数据增强等方法抑制过拟合后,准确率也不会得到提高,出现 ...

  3. 深度学习之基于Tensorflow2.0实现InceptionV3网络

    Inception网络是Google公司研发的,迄今为止有V1,V2,V3,V4四代,在V4这一代引入了残差网络的模型,本次主要介绍第三代-InceptionV3网络. 1. InceptionV3网 ...

  4. 【Python深度学习】基于Tensorflow2.0构建CNN模型尝试分类音乐类型(二)

    前情提要 基于上文所说 基于Tensorflow2.0构建CNN模型尝试分类音乐类型(一) 我用tf2.0和Python3.7复现了一个基于CNN做音乐分类器.用余弦相似度评估距离的一个音乐推荐模型. ...

  5. 【Python深度学习】基于Tensorflow2.0构建CNN模型尝试分类音乐类型(一)

    音乐分类 前言 复现代码 MP3转mel CNN模型 训练结果 总结 前言 我在逛github的时候,偶然发现了一个项目:基于深度学习的音乐推荐.[VikramShenoy97].作者是基于CNN做的 ...

  6. 【深度学习】(6) tensorflow2.0使用keras高层API

    各位同学好,今天和大家分享一下TensorFlow2.0深度学习中借助keras的接口减少神经网络代码量.主要内容有: 1. metrics指标:2. compile 模型配置:3. fit 模型训练 ...

  7. 【深度学习】利用tensorflow2.0卷积神经网络进行卫星图片分类实例操作详解

    本文的应用场景是对于卫星图片数据的分类,图片总共1400张,分为airplane和lake两类,也就是一个二分类的问题,所有的图片已经分别放置在2_class文件夹下的两个子文件夹中.下面将从这个实例 ...

  8. 深度学习实战—基于TensorFlow 2.0的人工智能开发应用

    作者:辛大奇 著 出版社:中国水利水电出版社 品牌:智博尚书 出版时间:2020-10-01 深度学习实战-基于TensorFlow 2.0的人工智能开发应用

  9. 飞桨深度学习开源框架2.0抢先看:成熟完备的动态图开发模式

    百度飞桨于近期宣布,深度学习开源框架2.0抢先版本正式发布,进入2.0时代.其中一项重大升级,就是推出更加成熟完备的命令式编程模式,即通常说的动态图模式.同时在该版本中将默认的开发模式定为动态图模式, ...

最新文章

  1. JUC多线程核心知识-思维导图
  2. 预装鸿蒙系统的手机,首款预装鸿蒙系统的手机入网,麒麟9000加持,型号亮了...
  3. MySQL 锁与MVCC :数据库的锁、MVCC、当前读、快照读、锁算法、死锁
  4. 打印1-400以内 能同时被5和9 整数的数将这些数放入一个列表中,再输出这个列表
  5. centos7 linux关闭端口占用,CentOS7使用firewalld打开关闭防火墙、端口
  6. iPhone 11外壳保护套曝光:噢,这个浓厚的老干部风格
  7. 机器视觉:百万像素工业镜头
  8. keras.layers.Conv2D 与tf.layers.Conv2D 的兼容性: AttributeError: ‘tuple‘ object has no attribute ‘layer‘
  9. 重磅:阿里发布神器工具,直接帮你改代码,我高潮了!网友:工作量又减轻了!...
  10. Maven POM 浅析
  11. 【项目管理/PMP/第六版/新考纲】纯干货!项目发展史/项目定义/项目集/项目组合/十五至尊图
  12. 通信基础 7 —— 遍历保密速率、谱分解物理意义
  13. 有关于图片压缩大小--尺寸裁剪 和 压缩系数
  14. 苹果手机不支持网易云音乐服务器,为什么我的苹果手机总是打不开网易云音乐。...
  15. 正版软件汇集,遥感集市
  16. 一元函数对象、一元谓词、二元函数对象、二元谓词
  17. 读 Lars V. Ahlfors 之《复分析》
  18. Linux系统下如何在防火墙开放指定端口
  19. 匠心铸梦 敏涵控股集团打造民族领军品牌
  20. 通给给定旋转轴向量v,旋转角度ang,计算出旋转矩阵

热门文章

  1. IOS之Label画一条删除线
  2. git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.
  3. Android虚拟机和Java虚拟机的区别
  4. opencv 阈值分割_CVPR2019实例分割Mask Scoring RCNN
  5. Qt的json对象不具备类似指针、引用的行为导致的更新不成功问题解决
  6. QEventLoop的简单使用(二)
  7. 关于ViewPager使用出现的图片覆盖错误问题
  8. php cap,PHP ImagickDraw setStrokeLineCap()用法及代码示例
  9. TCP报文发送的那些事
  10. c language compile process.