code: def train_epoch(model:nn.Module, dl:DataLoader, opt:optim.Optimizer, loss_func:LossFunction)->None:
      "Simple training of `model` for 1 epoch of `dl` using optim `opt` and loss function `loss_func`."
      model.train()
      for xb,yb in dl:
          loss = loss_func(model(xb), yb)
          loss.backward()
          opt.step()
          opt.zero_grad(f train_epoch(model:nn.Module, dl:DataLoader, opt:optim.Optimizer, loss_func:LossFunction)->None:
      "Simple training of `model` for 1 epoch of `dl` using optim `opt` and loss function `loss_func`."
      model.train()
      for xb,yb in dl:
          loss = loss_func(model(xb), yb)
          loss.backward()
          opt.step()
          opt.zero_grad()
docs: Simple training of `model` for 1 epoch of `dl` using optim `opt` and loss function `loss_func`.