          slices = self._constants["tgt_slices"]
          target_batch = [np.array([cv2.resize(image[slices, slices, :],
                                               (size, size),
                                               cv2.INTER_AREA)
                                    for image in batch], dtype='float32') / 255.
                          for size in self._output_sizes]
          logger.trace("Target image shapes: %s",
                       [tgt_images.shape[1:] for tgt_images in target_batch])
  
          retval = self._separate_target_mask(target_batch)
 
</s> remove                      [tgt_images.shape[1:] for tgt_images in target_batch])
 </s> add                      [tgt.shape for tgt_images in target_batch for tgt in tgt_images]) </s> remove             the format (`batchsize`, `height`, `width`, `1`).
 </s> add             the format (`batchsize`, `height`, `width`, `1`). **NB:** This item will only exist \
            in the ``dict`` if a batch of 4 channel images has been passed in :attr:`batch` </s> remove         targets = [batch[..., :3] for batch in size_list_of_batches]
        if size_list_of_batches[-1].shape[-1] == 4:
            masks = [size_list_of_batches[-1][..., 3:]]
 </s> add         batch = [tgt.astype("float32") / 255.0 for tgt in batch]
        if all(tgt.shape[-1] == 4 for tgt in batch):
            logger.trace("Batch contains mask")
            sizes = [item.shape[1] for item in batch]
            mask_batch = np.expand_dims(batch[sizes.index(max(sizes))][..., -1], axis=-1)
            batch = [item[..., :3] for item in batch]
            logger.trace("batch shapes: %s, mask_batch shape: %s",
                         [tgt.shape for tgt in batch], mask_batch.shape)
            retval = dict(targets=batch, masks=mask_batch) </s> remove         feed_faces = np.stack([detected_face.feed_face / 255. for detected_face in detected_faces])
 </s> add         feed_faces = np.stack([detected_face.feed_face for detected_face in detected_faces])
                                  for image in batch])
          slices = self._constants["tgt_slices"]
          target_batch = [np.array([cv2.resize(image[slices, slices, :],
                                               (size, size),
                                               cv2.INTER_AREA)
                                  for image in batch])
                          for size in self._output_sizes]
          logger.trace("Target image shapes: %s",
                       [tgt_images.shape[1:] for tgt_images in target_batch])
  
          retval = self._separate_target_mask(target_batch)
keep keep keep keep replace keep keep keep keep keep
 Serialize masks to alignments file

- Add new serializers (npy + compressed)
- Remove Serializer option from cli
- Revert get_aligned call in scripts/extract
- Default alignments to compressed
- Size masks to 128px and compress
- Remove mask thresholding/blur from generation code
- Add Mask class to lib/faces_detect
- Revert debug landmarks to aligned face
- Revert non-extraction code to staging version 
lib/training_data.py