class_docstr: The abstract base class `BaseEstimator` defines the basic requirements of an estimator in ART. The BaseEstimator is
  is the highest abstraction of a machine learning model in ART.
class_docstr_tok: ["The","abstract","base","class","`","BaseEstimator","`","defines","the","basic","requirements","of","an","estimator","in","ART",".","The","BaseEstimator","is","is","the","highest","abstraction","of","a","machine","learning","model","in","ART","."]
docstr: Initialize a `BaseEstimator` object.
  
  :param model: The model
  :param clip_values: Tuple of the form `(min, max)` of floats or `np.ndarray` representing the minimum and
         maximum values allowed for features. If floats are provided, these will be used as the range of all
         features. If arrays are provided, each value will be considered the bound for a feature, thus
         the shape of clip values needs to match the total number of features.
  :param preprocessing_defences: Preprocessing defence(s) to be applied by the estimator.
  :param postprocessing_defences: Postprocessing defence(s) to be applied by the estimator.
  :param preprocessing: Tuple of the form `(subtrahend, divisor)` of floats or `np.ndarray` of values to be
         used for data preprocessing. The first value will be subtracted from the input and the results will be
         divided by the second value.
code: def __init__(
      self,
      model,
      clip_values: Optional["CLIP_VALUES_TYPE"],
      preprocessing_defences: Union[
          "Preprocessor", List["Preprocessor"], None
      ] = None,
      postprocessing_defences: Union[
          "Postprocessor", List["Postprocessor"], None
      ] = None,
      preprocessing: Union["PREPROCESSING_TYPE", "Preprocessor"] = (
          0.0,
          1.0,
      ),
  ):
      """
      Initialize a `BaseEstimator` object.
  
      :param model: The model
      :param clip_values: Tuple of the form `(min, max)` of floats or `np.ndarray` representing the minimum and
             maximum values allowed for features. If floats are provided, these will be used as the range of all
             features. If arrays are provided, each value will be considered the bound for a feature, thus
             the shape of clip values needs to match the total number of features.
      :param preprocessing_defences: Preprocessing defence(s) to be applied by the estimator.
      :param postprocessing_defences: Postprocessing defence(s) to be applied by the estimator.
      :param preprocessing: Tuple of the form `(subtrahend, divisor)` of floats or `np.ndarray` of values to be
             used for data preprocessing. The first value will be subtracted from the input and the results will be
             divided by the second value.
      """
      self._model = model
      self._clip_values = clip_values
  
      self.preprocessing = self._set_preprocessing(preprocessing)
      self.preprocessing_defences = self._set_preprocessing_defences(
          preprocessing_defences
      )
      self.postprocessing_defences = self._set_postprocessing_defences(
          postprocessing_defences
      )
      self.preprocessing_operations: List["Preprocessor"] = []
      BaseEstimator._update_preprocessing_operations(self)
      BaseEstimator._check_params(self)
  
imports: from abc import ABC, abstractmethod
  from typing import Any, Dict, List, Optional, Tuple, Union, TYPE_CHECKING
  import numpy
  from tqdm.auto import trange
  from art.config import ART_NUMPY_DTYPE
label_desc: Use image node_id 1 to create a new BaseEstimator object from inherited base classes: ABC with example: obj = BaseEstimator(model, clip_values, preprocessing_defences, postprocessing_defences, preprocessing)