          for angle in self.rotation:
              # Rotate the batch and insert placeholders for already found faces
              self._rotate_batch(batch, angle)
              try:
                  batch.prediction = self.predict(batch.feed)
                  logger.trace("angle: %s, filenames: %s, prediction: %s",  # type:ignore
                               angle, batch.filename, batch.prediction)
              except tf_errors.ResourceExhaustedError as err:
                  msg = ("You do not have enough GPU memory available to run detection at the "
                         "selected batch size. You can try a number of things:"
                         "\n1) Close any other application that is using your GPU (web browsers are "
                         "particularly bad for this)."
 
</s> remove         logger.trace("detect_prediction output: (filenames: %s, prediction: %s, "  # type:ignore
                     "rotmat: %s)", batch.filename, batch.prediction, batch.rotation_matrix)
 </s> add         logger.trace("detect_prediction output: (filenames: %s, "  # type:ignore[attr-defined]
                     "prediction: %s, rotmat: %s)",
                     batch.filename, batch.prediction, batch.rotation_matrix) </s> remove                 logger.trace("Faces found for all images")  # type:ignore
 </s> add                 logger.trace("Faces found for all images")  # type:ignore[attr-defined] </s> remove                 logger.verbose("found face(s) by rotating image %s degrees",  # type:ignore
 </s> add                 logger.verbose("found face(s) by rotating image %s "  # type:ignore[attr-defined]
                               "degrees", </s> remove         logger.trace("Item out: %s",  # type:ignore
 </s> add         logger.trace("Item out: %s",  # type:ignore[attr-defined] </s> remove             logger.trace(item)  # type:ignore
 </s> add             logger.trace(item)  # type:ignore[attr-defined]
                pred = self.predict(batch.feed)
                if angle == 0:
                    batch.prediction = pred
                else:
                    batch.prediction = np.array([b if b.any() else p
                                                 for b, p in zip(batch.prediction, pred)])
                logger.trace("angle: %s, filenames: %s, "  # type:ignore[attr-defined]
                             "prediction: %s",
                             angle, batch.filename, pred)
          for angle in self.rotation:
              # Rotate the batch and insert placeholders for already found faces
              self._rotate_batch(batch, angle)
              try:
                pred = self.predict(batch.feed)
                if angle == 0:
                    batch.prediction = pred
                else:
                    batch.prediction = np.array([b if b.any() else p
                                                 for b, p in zip(batch.prediction, pred)])
                logger.trace("angle: %s, filenames: %s, "  # type:ignore[attr-defined]
                             "prediction: %s",
                             angle, batch.filename, pred)
                pred = self.predict(batch.feed)
                if angle == 0:
                    batch.prediction = pred
                else:
                    batch.prediction = np.array([b if b.any() else p
                                                 for b, p in zip(batch.prediction, pred)])
                logger.trace("angle: %s, filenames: %s, "  # type:ignore[attr-defined]
                             "prediction: %s",
                             angle, batch.filename, pred)
                pred = self.predict(batch.feed)
                if angle == 0:
                    batch.prediction = pred
                else:
                    batch.prediction = np.array([b if b.any() else p
                                                 for b, p in zip(batch.prediction, pred)])
                logger.trace("angle: %s, filenames: %s, "  # type:ignore[attr-defined]
                             "prediction: %s",
                             angle, batch.filename, pred)
              except tf_errors.ResourceExhaustedError as err:
                  msg = ("You do not have enough GPU memory available to run detection at the "
                         "selected batch size. You can try a number of things:"
                         "\n1) Close any other application that is using your GPU (web browsers are "
                         "particularly bad for this)."
keep keep keep keep replace replace replace keep keep keep keep keep
 bugfix: Extract - rotation in detection 
plugins/extract/detect/_base.py