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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Read the portfolio project guide

Work through the synthesis assessment

Use this path in your learning workspace