Xception
7 memberslucid.models.vision.xceptionXception family — Chollet, 2017.
Chollet, François. "Xception: Deep Learning with Depthwise Separable Convolutions." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2017, pp. 1251–1258.
Xception ("Extreme Inception") interprets the Inception module as an intermediate point on a continuum between an ordinary convolution and a fully decoupled spatial/channel filter. A standard Inception block splits the input into a few parallel branches, each of which is processed by a small pointwise convolution followed by a spatial convolution, and the branch outputs are concatenated. Xception pushes this idea to its limit: instead of a handful of branches, every output channel of the pointwise convolution gets its own independent spatial filter. This is exactly the depthwise separable convolution — §1.2 defines it as a depthwise (per-channel spatial) convolution followed by a pointwise mix in channel space, which is also the order the code builds. (Xception's own blocks are the "extreme Inception" reading of that same pair, so the modules appear in the depthwise-then-pointwise order throughout.)
The architectural hypothesis is that the cross-channel correlations and the spatial correlations in feature maps are sufficiently decoupled that they can — and should — be modeled independently. A regular convolution conflates the two; a depthwise separable convolution separates them, dramatically reducing both the parameter count and the FLOPs:
Xception stacks 36 such layers, organised into 14 modules. Twelve of them carry a linear residual shortcut (similar to ResNet); the first and the last do not. With essentially the same parameter budget as Inception-v3, it outperforms it on ImageNet and substantially outperforms it on the much larger JFT dataset. The architecture is designed for a input — the same crop size as Inception-v3 — so the spatial-reduction schedule matches that of its predecessor exactly, isolating the depthwise-separable factorisation as the sole source of accuracy improvement.
Classes
XceptionConfig1 methodsConfiguration for Xception (Extreme Inception).
Xception4 methodsXception feature-extracting backbone (no classification head).
XceptionForImageClassification2 methodsXception with dropout + linear classification head.
XceptionOutput1 methodsForward-return dataclass for XceptionForImageClassification.