TALK — Xception Press, Coverage, and Q&A

Verifiable Press/Blog Coverage

  1. Keras Applications (Official) — Xception was added to Keras Applications module (keras.applications.Xception) with pretrained ImageNet weights, under MIT license. Available at https://keras.io/api/applications/xception/ — one of the earliest architectures shipped with Keras alongside VGG16, ResNet50, and InceptionV3.
  2. TensorFlow Official Models — Xception is available in tf.keras.applications.Xception with pretrained weights. Documentation at https://www.tensorflow.org/api_docs/python/tf/keras/applications/Xception.
  3. Papers With Code — Xception is listed with benchmark results on ImageNet classification. https://paperswithcode.com/paper/xception-deep-learning-with-depthwise
  4. François Chollet’s Twitter/X — Chollet announced the paper and the Keras implementation, noting that Xception is “Extreme Inception” — the idea of pushing Inception to its logical extreme. The paper was also discussed in the context of Keras being the framework that made the architecture implementable in 30–40 lines of code.
  5. Medium / Towards Data Science — Multiple implementation walkthroughs and architectural analyses, including “Xception: Deep Learning with Depthwise Separable Convolutions” explanatory posts that walk through the Inception-to-depthwise-separable continuum.
  6. Google AI Blog (related) — While Xception itself did not get a dedicated Google Research Blog post (unlike MobileNets), it was referenced in subsequent Google publications on efficient architectures and in the MobileNetV2 paper (Sandler et al., 2018) which explicitly cites Xception’s depthwise separable convolution formulation.

Interview-Style Q&A

Q1: What’s the key insight that led to Xception?

A: Chollet observed that an Inception module is really just a partially-factorized convolution. It splits channels into a few groups, does 1×1 cross-channel mapping, then spatial convolutions within each group. If you push the number of groups to the extreme — one group per channel — you get a depthwise separable convolution. So Inception modules are an intermediate point on a spectrum between regular convolutions and depthwise separable convolutions. Xception asks: what if we go all the way to the extreme?

Q2: Why is there no ReLU between the depthwise and pointwise convolutions in Xception?

A: This is one of the most surprising findings. The paper tested adding ReLU or ELU between the depthwise and pointwise operations (Figure 10) and found that having no intermediate non-linearity led to both faster convergence and better final performance — the opposite of what Szegedy et al. found for Inception modules. Chollet hypothesizes that for deep feature spaces (Inception’s multi-channel sub-spaces) a non-linearity helps, but for the 1-channel-deep feature spaces of depthwise separable convolutions, it becomes harmful — possibly due to loss of information when the intermediate representation is too thin.

Q3: Xception has the same number of parameters as Inception V3 — so why is it better?

A: The gains are not from added capacity but from more efficient use of existing parameters. By completely decoupling spatial and channel correlations (rather than partially, as Inception does), each parameter does a more specialized job. On ImageNet the gain is small (79.0% vs 78.2% top-1), but on the much larger JFT dataset (350M images, 17K classes), the gain is 4.3% relative — suggesting that the advantage grows with dataset scale, where overfitting is less of a concern and the model’s representational efficiency matters more.

Q4: How does Xception relate to MobileNets, which also use depthwise separable convolutions?

A: They’re concurrent works (both 2016–2017) using the same core operation but with different goals. MobileNets targets mobile/edge efficiency — small models, width/resolution multipliers, ReLU6 for quantization. Xception targets maximum accuracy at Inception V3’s scale — residual connections, no intermediate activation, optimized for ImageNet/JFT performance. Xception demonstrated that depthwise separable convolutions aren’t just for efficiency; they can match or beat the best Inception architectures at equal parameter count.

Q5: What’s the “discrete spectrum” the paper describes, and why does it matter?

A: Between a regular convolution (all channels processed jointly) and a depthwise separable convolution (each channel processed independently), there’s a discrete spectrum parameterized by the number of channel-space segments. Regular conv = 1 segment. Inception = 3–4 segments. Depthwise separable = N segments (one per channel). The paper shows the extreme (N segments) works best, but notes there’s no reason to believe it’s optimal — intermediate points on the spectrum may hold further advantages, which is left for future work.

Common Misconceptions

  1. “Xception invented depthwise separable convolutions.” — No. The paper explicitly credits Laurent Sifre (2013, Google Brain internship, ICLR 2014 presentation) and notes prior use in Inception V1/V2 first layers and MobileNets. Xception’s contribution was the architectural interpretation (Inception as intermediate point on a spectrum) and the full-scale architecture with residual connections.
  2. “Xception is just a deeper MobileNet.” — While both use depthwise separable convolutions, the design philosophies differ: Xception includes residual connections, no intermediate non-linearity, targets Inception V3-scale accuracy, and has no width/resolution multipliers. MobileNets optimizes for efficiency with ReLU6, multipliers, and no residual connections.
  3. “The order of depthwise-then-pointwise vs pointwise-then-depthwise matters.” — Chollet explicitly argues this is unimportant in stacked settings (Section 1.2). TensorFlow’s depthwise separable conv does depthwise-first, Inception does pointwise-first, but the difference is negligible when modules are stacked.
  4. “Xception significantly beats Inception V3 on ImageNet.” — The ImageNet gain is marginal (0.8% top-1). The significant gain is on JFT (4.3% relative). The paper itself notes that the ImageNet optimization config was tuned for Inception V3, not Xception, so the ImageNet comparison is somewhat unfair to Xception.

Real Citations

  • Chollet, F. (2016). Xception: Deep Learning with Depthwise Separable Convolutions. arXiv:1610.02357.
  • Sifre, L. (2014). Rigid-Motion Scattering For Image Classification. PhD thesis, Ecole Polytechnique — original depthwise separable convolution.
  • Howard, A. G. et al. (2017). MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications. arXiv:1704.04861 — concurrent work on depthwise separable convolutions for efficiency.
  • Szegedy, C. et al. (2016). Rethinking the Inception Architecture for Computer Vision. arXiv:1512.00567 — Inception V3, the baseline Xception improves upon.
  • He, K. et al. (2015). Deep Residual Learning for Image Recognition. arXiv:1512.03385 — residual connections used extensively in Xception.
  • Sandler, M. et al. (2018). MobileNetV2: Inverted Residuals and Linear Bottlenecks. arXiv:1801.04381 — successor that cites Xception’s no-intermediate-activation finding.
  • Ioffe, S. & Szegedy, C. (2015). Batch Normalization. arXiv:1502.03167 — all conv layers in Xception followed by BatchNorm.