          else:
              vram = [pynvml.nvmlDeviceGetMemoryInfo(handle).free / (1024 * 1024)
                      for handle in self.handles]
          self.shutdown()
          return vram
  
      def get_card_most_free(self):
          """ Return the card and available VRAM for card with
              most VRAM free """
          if self.device_count == 0:
 
</s> remove         if is_macos:
 </s> add         if IS_MACOS: </s> remove         if self.verbose:
            print("GPU VRAM used:    {}".format(vram))

 </s> add         if self.logger:
            self.logger.verbose("GPU VRAM used: %s", vram) </s> remove         if is_macos:
 </s> add         if IS_MACOS: </s> remove         if is_macos:
 </s> add         if IS_MACOS:
        if self.logger:
            self.logger.debug("GPU VRAM free: %s", vram)
          else:
              vram = [pynvml.nvmlDeviceGetMemoryInfo(handle).free / (1024 * 1024)
                      for handle in self.handles]
          self.shutdown()
        if self.logger:
            self.logger.debug("GPU VRAM free: %s", vram)
          return vram
  
      def get_card_most_free(self):
          """ Return the card and available VRAM for card with
              most VRAM free """
          if self.device_count == 0:
keep keep keep add keep 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 
lib/gpu_stats.py