      import pynvx
      is_macos = True
  else:
      import pynvml
      is_macos = False
  
  
  class GPUStats():
      """ Holds information about system GPU(s) """
      def __init__(self):
 
</s> remove     import pynvx
    is_macos = True
 </s> add     import pynvx  # pylint: disable=import-error
    IS_MACOS = True </s> remove     def __init__(self):
        self.verbose = False
 </s> add     def __init__(self, log=True):
        self.logger = None
        if log:
            # Logger is held internally, as we don't want to log
            # when obtaining system stats on crash
            self.logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
            self.logger.debug("Initializing %s", self.__class__.__name__) </s> remove class CliOptions(object):
 </s> add class CliOptions(): </s> remove class SpawnProcess():
 </s> add class SpawnProcess(mp.context.SpawnProcess): </s> remove             if not is_macos:
 </s> add             if not IS_MACOS:
    IS_MACOS = False
      import pynvx
      is_macos = True
  else:
      import pynvml
    IS_MACOS = False
  
  
  class GPUStats():
      """ Holds information about system GPU(s) """
      def __init__(self):
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 
lib/gpu_stats.py