              This is unused for a constant layer
  
          Returns
          -------
          tuple
              An output shape tuple.
          """
          return self._constant.shape
  
      def get_config(self):
          """ Returns the config of the layer.
 
</s> remove         return self._constant.shape

    def get_config(self):
        """ Returns the config of the layer.
 </s> add         name = "conv{}".format(idx)
        var_x = inputs
        for i in range(1, recursions + 1):
            rec_name = "{}_{}".format(name, i)
            var_x = ZeroPadding2D(1, name="{}.zeropad".format(rec_name))(var_x)
            var_x = Conv2D(filters,
                           kernel_size=3,
                           strides=1,
                           activation="relu",
                           name=rec_name)(var_x)
        return var_x

    @classmethod
    def conv_up(cls, inputs, filters, idx):
        """ Convolution up filter blocks with zero padding added. </s> remove         input_shape: tuple or list of tuples
            Shape tuple (tuple of integers) or list of shape tuples (one per output tensor of the
            layer). Shape tuples can include ``None`` for free dimensions, instead of an integer.
            This is unused for a constant layer
 </s> add         inputs: tensor
            The input tensor to the convolution block
        filters: int
            The number of filters
        idx: int
            The layer index for naming
        recursions: int
            The number of recursions of the block to perform </s> remove         A layer config is a Python dictionary (serializable) containing the configuration of a
        layer. The same layer can be re-instantiated later (without its trained weights) from this
        configuration. The config of a layer does not include connectivity information, nor the
        layer class name. These are handled by `Network` (one layer of abstraction above).

 </s> add  </s> remove     def get_config(self):
        """ Returns the config of the layer.

        A layer config is a Python dictionary (serializable) containing the configuration of a
        layer. The same layer can be re-instantiated later (without its trained weights) from this
        configuration. The config of a layer does not include connectivity information, nor the
        layer class name. These are handled by `Network` (one layer of abstraction above).

        Returns
        -------
        dict
            The configuration for the layer
        """
        config = super().get_config()
        config.update({
            'starts': self._starts, 'ends': self._ends,
            'axes': self._axes, 'steps': self._steps
        })
        return config

 </s> add  </s> remove         Parameters
        ----------
        input_shape: tuple or list of tuples
            Shape tuple (tuple of integers) or list of shape tuples (one per output tensor of the
            layer). Shape tuples can include ``None`` for free dimensions, instead of an integer.
 </s> add     def model_definition(self):
        """ Keras S3FD Model Definition, adapted from FAN pytorch implementation. """
        input_ = Input(shape=(640, 640, 3))
        var_x = self.conv_block(input_, 64, 1, 2)
        var_x = MaxPooling2D(pool_size=2, strides=2)(var_x)
        tensor
            The output tensor from the convolution block
              This is unused for a constant layer
  
          Returns
          -------
        tensor
            The output tensor from the convolution block
        tensor
            The output tensor from the convolution block
          """
          return self._constant.shape
  
      def get_config(self):
          """ Returns the config of the layer.
keep keep keep keep replace replace keep keep keep keep keep
 extract: S3FD - Convert to re-enable CPU 
plugins/extract/detect/s3fd.py