class_docstr: Implementation of Interval based certification for neural network robustness.
  We use the interval (also called box) representation of a datapoint as it travels through the network
  to then verify if it can have its class changed given a certain perturbation.
  
  | Paper link: https://ieeexplore.ieee.org/document/8418593
  
  This classifier has 3 modes which can be set via: classifier.model.set_forward_mode('mode')
  
  'mode' can be one of:
      + 'abstract': When we wish to certifiy datapoints and have abstract predictions
      + 'concrete': When normal predictions need to be made
      + 'attack': When we are interfacing with an ART attack (for example PGD).
docstr: Access function to get preprocessing
  
  :param x: unprocessed input data.
  :param y: unprocessed labels.
  :param fit: `True` if the function is call before fit/training and `False` if the function is called before a
               predict operation.
  :return: Tuple with the processed input data and labels.
docstr_tok: ["Access","function","to","get","preprocessing",":","param","x",":","unprocessed","input","data",".",":","param","y",":","unprocessed","labels",".",":","param","fit",":","`","True","`","if","the","function","is","call","before","fit\/training","and","`","False","`","if","the","function","is","called","before","a","predict","operation",".",":","return",":","Tuple","with","the","processed","input","data","and","labels","."]
code: def apply_preprocessing(
      self, x: np.ndarray, y: np.ndarray, fit: bool
  ) -> Tuple[Any, Any]:
      """
      Access function to get preprocessing
  
      :param x: unprocessed input data.
      :param y: unprocessed labels.
      :param fit: `True` if the function is call before fit/training and `False` if the function is called before a
                   predict operation.
      :return: Tuple with the processed input data and labels.
      """
      x_preprocessed, y_preprocessed = self._apply_preprocessing(
          x, y, fit=fit
      )
      return x_preprocessed, y_preprocessed
  
imports: from typing import List, Optional, Tuple, Union, Callable, Any, TYPE_CHECKING
  import logging
  import warnings
  import numpy
  import torch
  from art.estimators.certification.interval.interval import PyTorchIntervalConv2D, PyTorchIntervalDense, PyTorchIntervalReLU, PyTorchIntervalBounds
  from art.estimators.classification.pytorch import PyTorchClassifier
label_desc: Use image node_id 3 for calling the PyTorchIBPClassifier obj's underlying member method code with example usage: obj.apply_preprocessing(x, y, fit) and returns: x_preprocessed,  y_preprocessed