          self.shutdown()
          return vram
  
      def print_info(self):
          """ Output GPU info in verbose mode """
          print("GPU Driver:       {}".format(self.driver))
          print("GPU Device count: {}".format(self.device_count))
          print("GPU Devices:      {}".format(self.devices))
 
</s> remove     @staticmethod
    def cv2_read_write(action, filename, image=None):
        """ Read or write an image using cv2 """
        if action == 'read':
            image = cv2.imread(filename)
        if action == 'write':
            cv2.imwrite(filename, image)
        return image

 </s> add  </s> remove def Tips_1_1():
    INFO("""1. Install Docker
 </s> add def tips_1_1():
    """ Output Tips """
    out_info("""1. Install Docker </s> remove def Tips_1_2():
    INFO("""1. Install Docker
 </s> add def tips_1_2():
    """ Output Tips """
    out_info("""1. Install Docker </s> remove def Tips_2_2():
    INFO("""1. Install System Dependencies.
 </s> add def tips_2_2():
    """ Output Tips """
    out_info("""1. Install System Dependencies. </s> remove def Tips_2_1():
    INFO("""Tensorflow has no official prebuilts for CUDA 9.1 currently.
 </s> add def tips_2_1():
    """ Output Tips """
    out_info("""Tensorflow has no official prebuilts for CUDA 9.1 currently.
    def get_card_most_free(self):
        """ Return the card and available VRAM for card with
            most VRAM free """
        free_vram = self.get_free()
        vram_free = max(free_vram)
        card_id = free_vram.index(vram_free)
        return {"card_id": card_id,
                "device": self.devices[card_id],
                "free": vram_free,
                "total": self.vram[card_id]}

    
          self.shutdown()
          return vram
  
    def get_card_most_free(self):
        """ Return the card and available VRAM for card with
            most VRAM free """
        free_vram = self.get_free()
        vram_free = max(free_vram)
        card_id = free_vram.index(vram_free)
        return {"card_id": card_id,
                "device": self.devices[card_id],
                "free": vram_free,
                "total": self.vram[card_id]}

    
      def print_info(self):
          """ Output GPU info in verbose mode """
          print("GPU Driver:       {}".format(self.driver))
          print("GPU Device count: {}".format(self.device_count))
          print("GPU Devices:      {}".format(self.devices))
keep keep add keep keep keep keep keep
 Extraction - Speed improvements (#522) (#523)

* Extraction - Speed improvements (#522)

* Initial Plugin restructure

* Detectors to plugins. Detector speed improvements

* Re-implement dlib aligner, remove models, FAN to TF. Parallel processing

* Update manual, update convert, implement parallel/serial switching

* linting + fix cuda check (setup.py). requirements update keras 2.2.4

* Add extract size option. Fix dlib hog init

* GUI: Increase tooltip width

* Update alignment tool to support new DetectedFace

* Add skip existing faces option

* Fix sort tool to new plugin structure

* remove old align plugin

* fix convert -skip faces bug

* Fix convert skipping no faces frames

* Convert - draw onto transparent layer

* Fix blur threshold bug

* fix skip_faces convert bug

* Fix training 
lib/gpu_stats.py