      def get_vram_free(self):
          """ Return total free VRAM on largest card """
          stats = GPUStats()
          vram = stats.get_card_most_free()
          if self.verbose:
              print("Using device {} with {}MB free of {}MB".format(
                  vram["device"],
                  int(vram["free"]),
                  int(vram["total"])))
          return int(vram["free"])
  
      @staticmethod
      def set_predetected(width, height):
          """ Set a dlib rectangle for predetected faces """
 
</s> remove         if self.verbose:
            print("Using device {} with {}MB free of {}MB".format(
                vram["device"],
                int(vram["free"]),
                int(vram["total"])))
 </s> add         logger.verbose("Using device %s with %sMB free of %sMB",
                       vram["device"],
                       int(vram["free"]),
                       int(vram["total"])) </s> remove     def get_vram_free(self):
 </s> add     @staticmethod
    def get_vram_free(): </s> remove     def get_vram_free(self):
 </s> add     @staticmethod
    def get_vram_free():
        logger.verbose("Using device %s with %sMB free of %sMB",
                       vram["device"],
                       int(vram["free"]),
                       int(vram["total"]))
      def get_vram_free(self):
          """ Return total free VRAM on largest card """
          stats = GPUStats()
          vram = stats.get_card_most_free()
        logger.verbose("Using device %s with %sMB free of %sMB",
                       vram["device"],
                       int(vram["free"]),
                       int(vram["total"]))
        logger.verbose("Using device %s with %sMB free of %sMB",
                       vram["device"],
                       int(vram["free"]),
                       int(vram["total"]))
        logger.verbose("Using device %s with %sMB free of %sMB",
                       vram["device"],
                       int(vram["free"]),
                       int(vram["total"]))
        logger.verbose("Using device %s with %sMB free of %sMB",
                       vram["device"],
                       int(vram["free"]),
                       int(vram["total"]))
        logger.verbose("Using device %s with %sMB free of %sMB",
                       vram["device"],
                       int(vram["free"]),
                       int(vram["total"]))
          return int(vram["free"])
  
      @staticmethod
      def set_predetected(width, height):
          """ Set a dlib rectangle for predetected faces """
keep keep keep keep replace replace replace replace 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 
plugins/extract/detect/_base.py