{
 "id": "epr7q03s7q",
 "slug": "xception",
 "title": "Xception",
 "updated": "2026-09-30",
 "topic_path": [
  {
   "id": "technology",
   "label": "Technology and the built world",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology"
  },
  {
   "id": "technology.computing",
   "label": "Computing and digital systems",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing"
  },
  {
   "id": "technology.computing.ai",
   "label": "Artificial intelligence and data",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai"
  },
  {
   "id": "technology.computing.ai.ml_computation",
   "label": "Machine learning and neural computation",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.ml_computation"
  },
  {
   "id": "technology.computing.ai.neural_deep",
   "label": "Neural networks and deep learning",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.neural_deep"
  },
  {
   "id": "technology.computing.ai.neural_deep.alpha-i-to-z",
   "label": "Titles I to Z",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.neural_deep.alpha-i-to-z"
  }
 ],
 "geo": [
  {
   "id": "geo.nongeo.t2001.technology.computing.ai.neural_deep",
   "label": "Non-geographic · 2001 to 2020: Neural networks and deep learning",
   "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing.ai.neural_deep",
   "path": [
    {
     "id": "geo.nongeo",
     "label": "Non-geographic",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo"
    },
    {
     "id": "geo.nongeo.t2001",
     "label": "Non-geographic · 2001 to 2020",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001"
    },
    {
     "id": "geo.nongeo.t2001.technology",
     "label": "Technology and the built world",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology"
    },
    {
     "id": "geo.nongeo.t2001.technology.computing",
     "label": "Computing and digital systems",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing"
    },
    {
     "id": "geo.nongeo.t2001.technology.computing.ai",
     "label": "Artificial intelligence and data",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing.ai"
    },
    {
     "id": "geo.nongeo.t2001.technology.computing.ai.ml_computation",
     "label": "Machine learning and neural computation",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing.ai.ml_computation"
    },
    {
     "id": "geo.nongeo.t2001.technology.computing.ai.neural_deep",
     "label": "Neural networks and deep learning",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing.ai.neural_deep"
    }
   ]
  }
 ],
 "excerpt": "Xception is a convolutional neural network architecture for image classification, reported by François Chollet in 2016, built on depthwise separable convolutions and widely used as a pretrained backbone.",
 "snippet": "Xception is a convolutional neural network architecture for image classification, reported by François Chollet in 2016, built on depthwise separable convolutions and widely used as a pretrained backbone.",
 "node": "technology.computing.ai.neural_deep.alpha-i-to-z",
 "markdown": "# Xception\n\nXception is a convolutional neural network architecture for image classification that replaces Inception-style modules with depthwise separable convolutions, and it is widely used as a pretrained backbone for transfer learning and feature extraction. It was reported by [François Chollet](https://www.edgepedia.org/francois-chollet) in 2016 and published at CVPR 2017, and it slightly outperforms Inception V3 on ImageNet while using a nearly identical number of parameters.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup><sup> • </sup><sup>[2](https://openaccess.thecvf.com/content_cvpr_2017/html/Chollet_Xception_Deep_Learning_CVPR_2017_paper.html)</sup>\n\n| Key fact | Value |\n|---|---|\n| ImageNet top-1 / top-5 accuracy | 0.790 / 0.945 (Inception V3: 0.782 / 0.941)<sup>[2](https://openaccess.thecvf.com/content_cvpr_2017/html/Chollet_Xception_Deep_Learning_CVPR_2017_paper.html)</sup> |\n| Parameters | 22,855,952 (Inception V3: 23,626,728)<sup>[2](https://openaccess.thecvf.com/content_cvpr_2017/html/Chollet_Xception_Deep_Learning_CVPR_2017_paper.html)</sup> |\n| Structure | 36 convolutional layers in 14 modules: entry flow, middle flow (repeated 8 times), exit flow<sup>[2](https://openaccess.thecvf.com/content_cvpr_2017/html/Chollet_Xception_Deep_Learning_CVPR_2017_paper.html)</sup> |\n| Input size | 299 × 299 (Keras implementation)<sup>[3](https://github.com/keras-team/keras-applications/blob/master/keras_applications/xception.py)</sup> |\n| Training compute | 60 NVIDIA K80 GPUs; ~3 days per ImageNet run, over one month per JFT run<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup> |\n| Throughput | 28 steps/second on ImageNet vs Inception V3's 31<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup> |\n| Segmentation use | DeepLabv3+ with Xception backbone: 89.0% on PASCAL VOC 2012 test, 82.1% on Cityscapes<sup>[4](https://arxiv.org/pdf/1802.02611v3)</sup> |\n\n## How it works\n\nA depthwise separable convolution, called \"separable convolution\" in [TensorFlow](https://www.edgepedia.org/tensorflow) and Keras, consists of a depthwise convolution, a spatial convolution performed independently over each channel of the input, followed by a pointwise convolution, a 1 × 1 convolution that mixes channels.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup> This decouples the two jobs a standard convolution performs at once: filtering spatially within each channel and combining information across channels.\n\nThe design rests on an interpretation of [Inception](https://www.edgepedia.org/inception) modules as an intermediate step between regular convolution and the depthwise separable operation. An Inception module first applies a 1 × 1 convolution, then spatial filters on each output channel; a depthwise separable convolution applies the spatial filter first and the 1 × 1 convolution second. The two differ in operation order and in the absence of non-linearities between the two operations in the separable form.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup> Xception takes this logic to its limit, hence the name, which stands for \"Extreme Inception\".<sup>[2](https://openaccess.thecvf.com/content_cvpr_2017/html/Chollet_Xception_Deep_Learning_CVPR_2017_paper.html)</sup>\n\n## How it is done\n\nData passes through the entry flow, then through the middle flow, which is repeated eight times, and finally through the exit flow.<sup>[2](https://openaccess.thecvf.com/content_cvpr_2017/html/Chollet_Xception_Deep_Learning_CVPR_2017_paper.html)</sup> The entry flow begins with a stem of two convolutional layers followed by three downsampling blocks, each with two separable convolution layers of kernel size 3, max pooling, and 1 × 1 stride-2 skip connections.<sup>[5](https://www.scitepress.org/Papers/2023/116231/116231.pdf)</sup> Each middle-flow block contains three separable convolution layers with kernel size 3 and stride 1, keeping feature maps at 19 × 19 × 728, with residual identity connections between blocks.<sup>[5](https://www.scitepress.org/Papers/2023/116231/116231.pdf)</sup>\n\nAll SeparableConvolution layers use a depth multiplier of 1, meaning no expansion of the channel dimension, and every convolution and separable convolution layer is followed by batch normalization.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup> Residual connections are described as essential for convergence, both in speed and in final classification performance.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup> The whole network is a linear stack expressible in roughly 30 to 40 lines of Keras code.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup>\n\nTraining used TensorFlow on 60 NVIDIA K80 GPUs with synchronous gradient descent for ImageNet, about 3 days per experiment, and asynchronous gradient descent for the larger JFT dataset, over one month per experiment, with JFT results reported after 30 million iterations without full convergence.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup>\n\n## Origin\n\nXception was reported by François Chollet in the 2016 arXiv paper \"Xception: Deep Learning with Depthwise Separable Convolutions\", later published in the CVPR 2017 proceedings.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup><sup> • </sup><sup>[6](https://www.computer.org/csdl/proceedings-article/cvpr/2017/0457b800/12OmNqFJhzG)</sup> The architecture builds on the Inception line of work, whose design was developed by Christian Szegedy and colleagues in \"Rethinking the Inception Architecture for Computer Vision\" (2015).<sup>[7](https://doi.org/10.48550/arxiv.1512.00567)</sup> Depthwise separable convolutions themselves had been used in neural network design as early as 2014 and became more popular after their inclusion in TensorFlow in 2016.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup>\n\n## Variants\n\n**Modified Xception for segmentation.** DeepLabv3+ adapts Xception as a segmentation backbone, applying atrous separable convolution to both the ASPP module and the decoder module.<sup>[4](https://arxiv.org/pdf/1802.02611v3)</sup> The modification replaces all max pooling operations with depthwise separable convolutions with striding, and adds batch normalization and ReLU after each 3 × 3 depthwise convolution, similar to [MobileNet](https://www.edgepedia.org/mobilenet) design, making the network fully convolutional so atrous convolution can extract feature maps at any resolution.<sup>[4](https://arxiv.org/pdf/1802.02611v3)</sup><sup> • </sup><sup>[8](https://github.com/tensorflow/models/blob/master/research/deeplab/core/xception.py)</sup> In this version each module's output is the sum of a residual, computed by three separable convolutions, and a shortcut, a 1 × 1 convolution that is optionally strided, with a controllable output stride for dense prediction.<sup>[8](https://github.com/tensorflow/models/blob/master/research/deeplab/core/xception.py)</sup> The TensorFlow implementation follows a modified version prepared for COCO 2017.<sup>[8](https://github.com/tensorflow/models/blob/master/research/deeplab/core/xception.py)</sup>\n\n**Aligned Xception and Xception-65.** Xception was modified for object detection, producing the variant known as Aligned Xception.<sup>[4](https://arxiv.org/pdf/1802.02611v3)</sup> The Xception-65 backbone (X-65) on DeepLabv3 attains 77.33% on the [PASCAL VOC](https://www.edgepedia.org/pascal-voc) 2012 validation set, improved to 78.79% with the decoder module.<sup>[4](https://arxiv.org/pdf/1802.02611v3)</sup>\n\n**Re-implementations.** The timm library provides a re-implementation of Xception as a network relying solely on depthwise separable convolution layers, citing Chollet's 2017 paper.<sup>[9](https://huggingface.co/docs/timm/models/xception)</sup>\n\n## Applications\n\nOn ImageNet, Xception scores 0.790 top-1 and 0.945 top-5 validation accuracy against Inception V3's 0.782 and 0.941, while running at 28 steps/second versus Inception V3's 31 on 60 K80 GPUs; it also outperforms the ImageNet results reported by He et al. for ResNet-50, ResNet-101, and ResNet-152.<sup>[2](https://openaccess.thecvf.com/content_cvpr_2017/html/Chollet_Xception_Deep_Learning_CVPR_2017_paper.html)</sup><sup> • </sup><sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup> On the JFT dataset of 350 million images and 17,000 classes, the gap widens: Xception reaches a 4.3% relative improvement over Inception V3 on FastEval14k MAP@100, scoring 6.78 versus 6.50 with fully connected layers, and 6.70 versus 6.36 without them.<sup>[2](https://openaccess.thecvf.com/content_cvpr_2017/html/Chollet_Xception_Deep_Learning_CVPR_2017_paper.html)</sup><sup> • </sup><sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup>\n\nThe parameter counts are nearly identical, 22,855,952 for Xception versus 23,626,728 for Inception V3, so the gains come from more efficient use of parameters rather than added capacity.<sup>[2](https://openaccess.thecvf.com/content_cvpr_2017/html/Chollet_Xception_Deep_Learning_CVPR_2017_paper.html)</sup> The advantage growing with dataset scale is consistent with that reading: on the much larger JFT set the relative improvement is several times larger than on ImageNet.<sup>[2](https://openaccess.thecvf.com/content_cvpr_2017/html/Chollet_Xception_Deep_Learning_CVPR_2017_paper.html)</sup>\n\nIn practice, Xception ships in the Keras Applications module under the MIT license with ImageNet weights, configurable `include_top`, `input_shape`, `pooling`, and 1000 output classes, for transfer learning and feature extraction.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup><sup> • </sup><sup>[3](https://github.com/keras-team/keras-applications/blob/master/keras_applications/xception.py)</sup> In the cited legacy Keras Applications implementation, it is available only for the TensorFlow backend, because it relies on `SeparableConvolution` layers; current Keras, by contrast, supports separable convolution on multiple backends, including JAX, TensorFlow, and PyTorch.<sup>[3](https://github.com/keras-team/keras-applications/blob/master/keras_applications/xception.py)</sup><sup> • </sup><sup>[13](https://keras.io/keras_3/)</sup> As a segmentation backbone, DeepLabv3+ with Xception reached 89.0% on PASCAL VOC 2012 and 82.1% on Cityscapes test sets without post-processing.<sup>[4](https://arxiv.org/pdf/1802.02611v3)</sup> More recently, Xception has served as a feature-extraction backbone in deepfake detection: a 2024 study reports 99.69% accuracy, 99.58% precision, 99.80% recall, and an AUC-ROC of 0.9999 after 50 epochs, exceeding one-class VAE (98.20%), CNN (98.52%), and SVM (90.24%) baselines in that study,<sup>[10](https://cdn.techscience.press/files/cmc/2024/TSP_CMC-81-3/TSP_CMC_57029/TSP_CMC_57029.pdf)</sup> and a 2025 method fine-tunes Xception with a spatial attention module, global average pooling, and a 512-unit ReLU dense layer before classification.<sup>[11](https://www.scitepress.org/Papers/2025/131737/131737.pdf)</sup> Transfer-learning-based Xception has also been applied to detecting distorted faces in video deepfakes.<sup>[12](https://ais.khpi.edu.ua/article/view/305475)</sup>\n\n## Limitations and alternatives\n\nThe documented comparisons are against Inception V3 and the ResNet family. Xception trades a small throughput loss for slightly better ImageNet accuracy (28 versus 31 steps/second), and its advantage grows with dataset size.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup> Depthwise separable convolutions also underpin MobileNet-style efficient mobile models, which target a different point in the accuracy-versus-cost trade-off.<sup>[1](https://doi.org/10.48550/arxiv.1610.02357)</sup>\n\n## References\n\n1. [Chollet, François (2016). Xception: Deep Learning with Depthwise Separable Convolutions. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.1610.02357)\n2. [Xception: Deep Learning With Depthwise Separable Convolutions (CVPR 2017 Open Access)](https://openaccess.thecvf.com/content_cvpr_2017/html/Chollet_Xception_Deep_Learning_CVPR_2017_paper.html)\n3. [Keras Applications Xception implementation](https://github.com/keras-team/keras-applications/blob/master/keras_applications/xception.py)\n4. [Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation (DeepLabv3+, ECCV 2018)](https://arxiv.org/pdf/1802.02611v3)\n5. [From Xception to NEXcepTion: New Design Decisions and Neural Architecture Search (SCITEPRESS, 2023)](https://www.scitepress.org/Papers/2023/116231/116231.pdf)\n6. [IEEE Computer Society CVPR 2017 proceedings entry](https://www.computer.org/csdl/proceedings-article/cvpr/2017/0457b800/12OmNqFJhzG)\n7. [Szegedy, Christian and colleagues (2015). Rethinking the Inception Architecture for Computer Vision. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.1512.00567)\n8. [DeepLab Xception variant (TensorFlow models repository)](https://github.com/tensorflow/models/blob/master/research/deeplab/core/xception.py)\n9. [Xception · Hugging Face (timm docs)](https://huggingface.co/docs/timm/models/xception)\n10. [Advancing Deepfake Detection Using Xception Architecture (Computers, Materials & Continua, 2024)](https://cdn.techscience.press/files/cmc/2024/TSP_CMC-81-3/TSP_CMC_57029/TSP_CMC_57029.pdf)\n11. [DeepSpace: Navigating the Frontier of Deepfake Identification Using Attention-Driven Xception and a Task-Specific Subspace (SciTePress, 2025)](https://www.scitepress.org/Papers/2025/131737/131737.pdf)\n12. [Deepfake Detection Using Transfer Learning-Based Xception Model (Advanced Information Systems)](https://ais.khpi.edu.ua/article/view/305475)\n13. [Keras 3 (keras.io)](https://keras.io/keras_3/)\n\n---\n*Topic: Encyclopedia › Technology and the built world › Computing and digital systems › Artificial intelligence and data › Machine learning and neural computation › Neural networks and deep learning › Titles I to Z*\n\n*Initially written Sep 29, 2026 · Reviewed: Sep 30, 2026 · Edited: Sep 30, 2026 · Last review: Sep 30, 2026*\n\n*Copyright 2026 EdgeChat AI, a subsidiary of Biostate AI.*\n\nLicense: Edgepedia Community License 1.0, https://www.edgepedia.org/edgepedia/license\n",
 "same_as": [],
 "url": "https://www.edgepedia.org/xception",
 "markdown_url": "https://www.edgepedia.org/xception.md",
 "license": {
  "name": "Edgepedia Community License 1.0",
  "url": "https://www.edgepedia.org/edgepedia/license",
  "summary": "Free with credit, commercial use included. AI training is open to everyone. For other uses, organizations over USD 100M in revenue or 100M monthly users license separately.",
  "spdx": "LicenseRef-Edgepedia-Community-1.0"
 },
 "credit": "\"Xception\", Edgepedia (EdgeChat), https://www.edgepedia.org/xception. Edgepedia Community License 1.0.",
 "credit_md": "\"[Xception](https://www.edgepedia.org/xception)\", Edgepedia (EdgeChat), [https://www.edgepedia.org/xception](https://www.edgepedia.org/xception). [Edgepedia Community License 1.0](https://www.edgepedia.org/edgepedia/license).",
 "credit_html": "\"<a href=\"https://www.edgepedia.org/xception\">Xception</a>\", Edgepedia (EdgeChat), <a href=\"https://www.edgepedia.org/xception\">https://www.edgepedia.org/xception</a>. <a href=\"https://www.edgepedia.org/edgepedia/license\">Edgepedia Community License 1.0</a>.",
 "speakable": "Xception is a convolutional neural network architecture for image classification, reported by François Chollet in 2016, built on depthwise separable convolutions and widely used as a pretrained backbone."
}
