                  sys.exit(1)
              arguments.exclude_gpus = [int(idx) for idx in arguments.exclude_gpus]
              set_exclude_devices(arguments.exclude_gpus)
  
          if ((get_backend() == "cpu" or GPUStats().exclude_all_devices) and
                  (self._command == "extract" and arguments.detector == "s3fd")):
              logger.error("Extracting on CPU is not currently for detector: '%s'",
                           arguments.detector.upper())
              sys.exit(0)
  
          if GPUStats().exclude_all_devices and get_backend() != "cpu":
              msg = "Switching backend to CPU"
              if get_backend() == "amd":
                  msg += (". Using Tensorflow for CPU operations.")
                  os.environ["KERAS_BACKEND"] = "tensorflow"
 
</s> remove         config = super().get_config()
        config.update({
            'constant_obj': self._constant,
            'dtype': self._dtype
        })
        return config
 </s> add         name = "conv{}".format(idx)
        var_x = inputs
        for i in range(1, 3):
            rec_name = "{}_{}".format(name, i)
            size = 1 if i == 1 else 3
            if i == 2:
                var_x = ZeroPadding2D(1, name="{}.zeropad".format(rec_name))(var_x)
            var_x = Conv2D(filters * i,
                           kernel_size=size,
                           strides=i,
                           activation="relu",
                           name=rec_name)(var_x)
        return var_x </s> remove                  "\nL|s3fd: Best detector. GPU only. Can detect more faces and fewer false "
                 "positives than other GPU detectors, but is a lot more resource intensive."))
 </s> add                  "\nL|s3fd: Best detector. Slow on CPU, faster on GPU. Can detect more faces and "
                 "fewer false positives than other GPU detectors, but is a lot more resource "
                 "intensive.")) </s> remove                     loc = np.ascontiguousarray(oreg[0, :, hindex, windex]).reshape((1, 4))
 </s> add                     loc = np.ascontiguousarray(oreg[0, hindex, windex, :]).reshape((1, 4)) </s> remove         Returns
        -------
        tuple
            An output shape tuple.
        """
        if self._axes is None:
            return (1,)*len(input_shape) if self._keepdims else tuple()
        ret = list(input_shape)
        for i in sorted(self._axes, reverse=True):
            if self._keepdims:
                ret[i] = 1
            else:
                ret.pop(i)
        return tuple(ret)
 </s> add         var_x = self.conv_block(var_x, 128, 2, 2)
        var_x = MaxPooling2D(pool_size=2, strides=2)(var_x) </s> remove 
class ReduceLayerO2K(keras.layers.Layer):
    """ Custom Keras Reduce layer generated by onnx2keras. """
    def __init__(self, axes=None, keepdims=True, **kwargs):
        self._axes = [axes] if isinstance(axes, int) else axes
        self._keepdims = bool(keepdims)
        super().__init__(**kwargs)

 </s> add 
                  sys.exit(1)
              arguments.exclude_gpus = [int(idx) for idx in arguments.exclude_gpus]
              set_exclude_devices(arguments.exclude_gpus)
  






          if GPUStats().exclude_all_devices and get_backend() != "cpu":
              msg = "Switching backend to CPU"
              if get_backend() == "amd":
                  msg += (". Using Tensorflow for CPU operations.")
                  os.environ["KERAS_BACKEND"] = "tensorflow"
keep keep keep keep replace replace replace replace replace replace keep keep keep keep keep
 extract: S3FD - Convert to re-enable CPU 
lib/cli/launcher.py