You will be told three incompatible things about how to start deep learning, and all three come from people worth listening to.
- Top-down (fast.ai): train a working model in lesson one, then come back to the mechanics. This can keep you engaged, though it is a teaching choice, not a proven cure for giving up.
- Bottom-up (Karpathy, d2l.ai): start from a single derivative and build up to a transformer. The argument is that nothing else produces real understanding of what is happening.
- Maths first: foundations before code. This is the one ordering I would gently steer you away from, for the reasons in Chapter 3.
I suggest bottom-up first, top-down alongside: build the autograd engine, then learn PyTorch, then use fast.ai for transfer learning and momentum. If you know that you lose interest without an early win, invert it and do fast.ai's first three lessons before the autograd exercise. Both work.
On frameworks. Use PyTorch here so the exercises share one implementation. Choose another framework later when a project or team needs one. Keras supports custom PyTorch training steps (Keras custom-training-step guide), so it still lets you learn the loop. JAX is useful beyond very large training runs too. The point is a consistent first project.
The official PyTorch 2.14 release, published 2 September 2026, adds compiler, hardware and distributed-runtime work. Pin a supported release and use its docs. A release-note speedup on one kernel or device does not predict your model's end-to-end speed. Several new features are marked experimental.