      for key, val in TENSORFLOW_REQUIREMENTS.items():
          cuda_req = val[0]
          cudnn_req = val[1].split(".")
          if cuda_req == CUDA_VERSION and (cudnn_req[0] == cudnn_inst[0] and
                                           cudnn_req[1] >= cudnn_inst[1]):
              tf_ver = key
              break
      if tf_ver:
          tf_ver = "tensorflow-gpu=={}.0".format(tf_ver)
          REQUIRED_PACKAGES.append(tf_ver)
 
</s> remove                 exception = faces.get("exception", None)
                if exception is not None:
                    queue_manager.terminate_queues()
                    yield faces
                    break
 </s> add                 if isinstance(faces, dict) and faces.get("exception"):
                    pid = faces["exception"][0]
                    t_back = faces["exception"][1].getvalue()
                    err = "Error in child process {}. {}".format(pid, t_back)
                    raise Exception(err) </s> remove         try:
            while True:
                item = self.queues["in"].get()
                if item == "EOF":
                    self.queues["in"].put(item)
 </s> add         logger.debug("Launching Detect")
        while True:
            item = self.get_item()
            if item == "EOF":
                break
            logger.trace("Detecting faces: '%s'", item["filename"])
            detect_image = self.compile_detection_image(item["image"], False, False)

            for angle in self.rotation:
                current_image, rotmat = self.rotate_image(detect_image, angle)
                faces, points = detect_face(current_image, **self.kwargs)
                if angle != 0 and faces.any():
                    logger.verbose("found face(s) by rotating image %s degrees", angle)
                if faces.any(): </s> remove         filter_files = [self.set_face_filter(key, val)
                        for key, val in filter_lists.items()]
 </s> add         filter_files = [self.set_face_filter(f_type, filter_lists[f_type])
                        for f_type in ("filter", "nfilter")]
                                         cudnn_req[1] <= cudnn_inst[1]):
      for key, val in TENSORFLOW_REQUIREMENTS.items():
          cuda_req = val[0]
          cudnn_req = val[1].split(".")
          if cuda_req == CUDA_VERSION and (cudnn_req[0] == cudnn_inst[0] and
                                         cudnn_req[1] <= cudnn_inst[1]):
              tf_ver = key
              break
      if tf_ver:
          tf_ver = "tensorflow-gpu=={}.0".format(tf_ver)
          REQUIRED_PACKAGES.append(tf_ver)
keep keep keep keep replace keep keep keep keep keep
 Logging (#541)

* Convert prints to logger. Further logging improvements. Tidy  up

* Fix system verbosity. Allow SystemExit

* Fix reload extract bug

* Child Traceback handling

* Safer shutdown procedure

* Add shutdown event to queue manager

* landmarks_as_xy > property. GUI notes + linting. Aligner bugfix

* fix FaceFilter. Enable nFilter when no Filter is supplied

* Fix blurry face filter

* Continue on IO error. Better error handling

* Explicitly print stack trace tocrash log

* Windows Multiprocessing bugfix

* Add git info and conda version to crash log

* Windows/Anaconda mp bugfix

* Logging fixes for training 
setup.py