All learning pathsJAX learning path
Understand JAX itself
Trace a function into jaxpr, verify forward and reverse sensitivities, write exact custom derivative rules, and compile a small transformation whose limits you can explain.
Who this path is for
Curious JAX users who can already use grad and jit and want to diagnose transformation behavior.
Preparation
Shared foundations and advanced autodiff
Your first useful artifact
An annotated jaxpr that explains a computation and a changed input shape.
How to study
Start by connecting each jaxpr primitive to the function that produced it. Revisit directional derivatives and the chain rule before studying JVPs, VJPs and custom rules. Keep an independent derivative reference beside every transformation. Finish the derivative audit, then extend the tiny interpreter in the synthesis assessment and explain its unsupported cases.
Course phases and lessons
- Setup & first steps
Run a saved program and explain its environment, array output and device placement. Start on one CPU, practice sharding on four logical CPU devices, and learn how to get a TPU running, launch a TPU job, and run course experiments on TPU in parallel from Phase 00 onward.
- Arrays & pure functions
Treat every axis as part of a contract. Work through normalization, broadcasting and immutable updates, then diagnose mistakes that still return plausible numbers.
- JAX transformations
Begin with a scalar function, then differentiate it, batch it and compile it. Compare each transformed result with a simple reference so you can explain what changed.
- State, randomness & control flow
Make randomness, parameters and loop state explicit. Learn how to repeat an experiment without accidentally reusing randomness or mutating a caller’s state.
- Math & optimization
Connect geometry and probability to the updates in a training loop. Begin with linear algebra, gradient checks and gradient descent, then investigate conditioning, curvature, likelihoods, regularization and optimizer behavior.
- Vectors, norms, and projections
- Linear algebra and loss intuition
- Least squares, rank, and conditioning
- The chain rule, Jacobians, and directions
- Gradient checking and numerical accuracy
- Curvature, Hessians, and learning rates
- Write gradient descent yourself
- Probability, likelihood, and stable losses
- Regularization and honest validation
- Minibatches, expectation, and gradient noise
- Optimize with Optax
- Adam, clipping, and learning-rate schedules
- Autodiff & JAX internals
Trace functions into jaxpr, check forward and reverse sensitivities, write exact custom derivatives and compile a small transformation with explicit supported primitives.
Audit derivatives and a tiny transformation
A guided project is available for this route.
Connect a jaxpr to your function and numerically verify the derivative rule.
- An annotated jaxpr linking primitives and shapes to the original function
- Directional and adjoint derivative checks on changed inputs
- A custom derivative or transformation with a deliberate unsupported case and explicit rejection
Read the portfolio project guide