class_docstr: A step function that implements a training step for a feed forward network.
  
  An instance of this class is intended to be used as a callable:
  
  ```python
  ...
  step = step_fn.StandardSingleLossStep(
      dataset, loss_fn, optimizer, distribution)
  
  # Run a single training step on a given DistributionStrategy:
  step(distribution)
  ...
  ```
  
  Args:
    dataset_fn: a function that returns a tf.data Dataset that produces the
      input for the model.
    loss_fn: a function that takes a context and inputs as arguments. It returns
      the loss for those inputs. `context` is an instance of
      `values.MultiStepContext` that will be passed when `loss_fn` is run.
      `context` can be used to specify the outputs to be returned from
      `loss_fn`, among other things.
    optimizer: an optimizer that implements an update rule.
    distribution: a `DistributionStrategy` object.
code: def __init__(
      self,
      dataset_fn,
      loss_fn,
      optimizer,
      distribution,
      iterations_per_step=1,
  ):
      super(StandardSingleLossStep, self).__init__(
          dataset_fn, distribution
      )
      self._loss_fn = loss_fn
      self._optimizer = optimizer
      self._iterations_per_step = iterations_per_step
  
file_path: tensorflow-upstream/tensorflow/python/distribute/step_fn.py
imports: from tensorflow.python.eager import backprop
  from tensorflow.python.training import optimizer
label_desc: Use image node_id 1 to create a new StandardSingleLossStep object from inherited base classes: StandardInputStep with example: obj = StandardSingleLossStep(dataset_fn, loss_fn, optimizer, distribution, iterations_per_step)