The backbone is the feature extractor
A backbone is the model minus its final task layer — the stack of convolutions (or transformer blocks) that turns raw pixels into a rich feature map. Pretrained on ImageNet, it already knows edges, textures, shapes, and object parts; your downstream task only has to learn how to read those features. That's transfer learning's whole leverage, and it's why almost no one in 2026 trains a vision model from random weights.
KerasCV ships a deep menu of backbones spanning the classic CNN, mobile, dense, and ViT-style families:
| Backbone | Style | Sizes |
|---|---|---|
| EfficientNetV1/V2 | Efficient CNN | B0–B7, S/M/L |
| ResNet | Classic residual | 18/34/50/101/152 |
| MiT (Mix Transformer) | ViT-style | B0–B5 |
| MobileNetV3 | Mobile-optimized | Small/Large |
| DenseNet | Dense connections | 121/169/201 |
| CSPDarkNet | YOLO backbone | Tiny/S/M/L/XL |
Choosing a size
The size suffix (B0 vs B7, ResNet18 vs ResNet152) is a direct latency-vs-accuracy dial: bigger backbones see more, but cost more per inference. Start small. A ResNet50 or EfficientNetV2-S is the workhorse default — enough capacity for most problems, fast enough to iterate on. Reach for the giants only after you've confirmed the small one is genuinely capacity-bound, not data-bound.