      """ Custom Keras Power layer generated by onnx2keras. """
      def call(self, inputs, **kwargs):  # pylint:disable=unused-argument,no-self-use
          """This is where the layer's logic lives.
  
          Parameters
          ----------
          inputs: Input tensor, or list/tuple of input tensors.
              The input to the layer
          **kwargs: Additional keyword arguments.
              Required for parent class but unused
          Returns
          -------
          A tensor or list/tuple of tensors.
              The layer output
          """
          return K.pow(*inputs)
  
  
  class ConstantLayerO2K(keras.layers.Layer):
      """ Custom Keras Constant layer generated by onnx2keras. """
      def __init__(self, constant_obj, dtype, **kwargs):
          self._dtype = np.dtype(dtype).name
          self._constant = np.array(constant_obj, dtype=self._dtype)
          super().__init__(**kwargs)
  
      def call(self, inputs, **kwargs):  # pylint:disable=unused-argument
          """This is where the layer's logic lives.
  
          Parameters
 
</s> remove         Parameters
        ----------
        inputs: Input tensor, or list/tuple of input tensors.
            The input to the layer
        **kwargs: Additional keyword arguments.
            Required for parent class but unused
        Returns
        -------
        A tensor or list/tuple of tensors.
            The layer output
        """
        return K.sqrt(inputs)
 </s> add         f5_3 = ZeroPadding2D(1)(f5_3)
        cls3 = Conv2D(2, kernel_size=3, strides=1, name="conv5_3_norm_mbox_conf")(f5_3)
        reg3 = Conv2D(4, kernel_size=3, strides=1, name="conv5_3_norm_mbox_loc")(f5_3) </s> remove         Parameters
        ----------
        inputs: Input tensor, or list/tuple of input tensors.
            The input to the layer
        **kwargs: Additional keyword arguments.
            Required for parent class but unused
 </s> add  </s> remove         Parameters
        ----------
        inputs: Input tensor, or list/tuple of input tensors.
            The input to the layer
        **kwargs: Additional keyword arguments.
            Required for parent class but unused
        Returns
        -------
        A tensor or list/tuple of tensors.
            The layer output
        """
        return K.sum(inputs, self._axes, self._keepdims)
 </s> add         f3_3 = L2Norm(256, scale=10, name="conv3_3_norm")(f3_3)
        f4_3 = L2Norm(512, scale=8, name="conv4_3_norm")(f4_3)
        f5_3 = L2Norm(512, scale=5, name="conv5_3_norm")(f5_3) </s> remove         Parameters
        ----------
        inputs: Input tensor, or list/tuple of input tensors.
            The input to the layer
        **kwargs: Additional keyword arguments.
            Required for parent class but unused
        Returns
        -------
        A tensor or list/tuple of tensors.
            The layer output
        """
        raise NotImplementedError()
 </s> add         var_x = self.conv_block(var_x, 512, 5, 3)
        f5_3 = var_x
        var_x = MaxPooling2D(pool_size=2, strides=2)(var_x) </s> remove class ElementwiseLayerO2K(keras.layers.Layer):
    """ Custom Keras Element Wise layer generated by onnx2keras. """
    def call(self, inputs, **kwargs):  # pylint:disable=unused-argument
        """This is where the layer's logic lives.

        Override for layers that inherit from this class.

        Parameters
        ----------
        inputs: Input tensor, or list/tuple of input tensors.
            The input to the layer
        **kwargs: Additional keyword arguments.
            Required for parent class but unused
        Returns
        -------
        A tensor or list/tuple of tensors.
            The layer output
        """
        raise NotImplementedError()

    def compute_output_shape(self, input_shape):  # pylint:disable=no-self-use
        """Computes the output shape of the layer.
 </s> add class L2Norm(keras.layers.Layer):
    """ L2 Normalization layer for S3FD.

    Parameters
    ----------
    n_channels: int
        The number of channels to normalize
    scale: float, optional
        The scaling for initial weights. Default: `1.0`
    """
    def __init__(self, n_channels, scale=1.0, **kwargs):
        super().__init__(**kwargs)
        self._n_channels = n_channels
        self._scale = scale
        self.w = self.add_weight("l2norm",  # pylint:disable=invalid-name
                                 (self._n_channels, ),
                                 trainable=True,
                                 initializer=keras.initializers.Constant(value=self._scale),
                                 dtype="float32")
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
      """ Custom Keras Power layer generated by onnx2keras. """
      def call(self, inputs, **kwargs):  # pylint:disable=unused-argument,no-self-use
          """This is where the layer's logic lives.
  
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
        f7_2 = ZeroPadding2D(1)(f7_2)
        cls6 = Conv2D(2, kernel_size=3, strides=1, name="conv7_2_mbox_conf")(f7_2)
        reg6 = Conv2D(4, kernel_size=3, strides=1, name="conv7_2_mbox_loc")(f7_2)
  
      def call(self, inputs, **kwargs):  # pylint:disable=unused-argument
          """This is where the layer's logic lives.
  
          Parameters
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 extract: S3FD - Convert to re-enable CPU 
plugins/extract/detect/s3fd.py