Core idea

PyTorch is a compression layer over deep-learning computation. It is introduced after the reader has seen the pieces it compresses.

Main translations

Earlier ideaPyTorch name or pattern
numeric arraytensor
forward functionmodule or model call
trainable weightparameter
scalar training signalloss
chain-rule derivative bookkeepingautograd
parameter update ruleoptimizer
group of examplesbatch from a data loader
learned tensor valuesstate dict

Training step

optimizer.zero_grad()
pred = model(x_batch)
loss = loss_fn(pred, y_batch)
loss.backward()
optimizer.step()

Read the step as:

  1. clear old gradients
  2. predict
  3. measure error
  4. compute gradients
  5. update parameters

Important cautions

  • backward() computes gradients; it does not update parameters.
  • optimizer.step() updates parameters; it does not compute the loss.
  • a module is a package around computation and trainable state.
  • a data loader manages batches; it does not define the learning objective.
  • saved state stores learned tensor values and related experiment state.

Before moving on

You should be able to read a small PyTorch training loop and explain each line without relying on the framework as a black box.