  
          Parameters
          ----------
          loss: list
              The list of loss ``floats`` for this iteration.
  
          Returns
          -------
          list
              List of 2 ``floats`` which is the total loss for each side
 
</s> remove             List of 2 ``floats`` which is the total loss for each side
 </s> add             List of 2 ``floats`` which is the total loss for each side (eg sum of face + mask loss) </s> remove     def _collate_and_store_loss(self, loss):
 </s> add     def _collate_and_store_loss(self, loss: List[float]) -> List[float]: </s> remove         logger.trace("Updating TensorBoard log")
 </s> add         logger.trace("Updating TensorBoard log")  # type: ignore </s> remove     def _print_loss(self, loss):
 </s> add     def _print_loss(self, loss: List[float]) -> None: </s> remove         targets: list
            The targets for the model, with the mask as the final entry in the list
        masks: list
            The masks for the model
        additional_masks: list or ``None``
            Any additional masks for the model, or ``None`` if no additional masks are required
 </s> add         is_timelapse, bool, optional
            ``True`` if preview is to be generated for a Timelapse otherwise ``False``.
            Default: ``False``
            The list of loss ``floats`` for each side this iteration (excluding total combined
            loss)
  
          Parameters
          ----------
          loss: list
            The list of loss ``floats`` for each side this iteration (excluding total combined
            loss)
  
          Returns
          -------
          list
              List of 2 ``floats`` which is the total loss for each side
keep keep keep keep replace keep keep keep keep keep
 Data Augmentation update (#1263)

- lib.detected_face
    - Subclass Masks for Landmark based masks
    - Add training mask propery + methods to DetectedFace
  - lib.training_training
    - subclass TrainingDataGenerator for training and preview data
    - Split cache into own module
    - Reduce thread count to 1 to prevent image corruption + data re-use
    - Process on largest model input/output size rather than stored image size
    - Size and crop masks during caching stage
    - Implement ring buffer for data flow
    - Fix preview reload bug
  - augmentation
    - typing
    - switch color aug order
    - better initialization
    - Fix warp + landmark warp to correctly apply at different image scales
    - Slightly improved warp caching
    - Don't store whether image is_preview. Handle all data as training images implicitly
  - plugins.trainer: Typing and fixes to work with trainingdata refactor 
plugins/train/trainer/_base.py