What the whole quest was really teaching
The APIs in this quest will keep shifting — versions bump, backends rise and fall. What outlasts them is a set of habits about how to decide, and they're worth saying plainly one last time. Read these less as Keras rules and more as defaults for working with any deep-learning framework:
- Start simple, add complexity only when needed. Sequential → Functional → Subclassing. Don't reach for the complex tool first.
- Prefer Functional API over subclassing. Custom layers (subclassed) + Functional composition = best of both worlds.
- Use built-in components before custom ones. Keras's built-in layers, losses, and metrics are battle-tested and optimized.
- Profile before optimizing. Don't guess where the bottleneck is — measure it.
- Leverage the multi-backend superpower. Train on JAX for speed, deploy on TF for serving, use PyTorch for ecosystem access.
Where to go next: keras.io/examples (hundreds of runnable examples), the Keras GitHub repo (source code is readable!), and the Keras community on GitHub Discussions.