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: Take a dictionary of parameters and apply checks before setting them as attributes.
  
  :param kwargs: A dictionary of attributes.
code: def set_params(self, **kwargs) -> None:
      """
      Take a dictionary of parameters and apply checks before setting them as attributes.
  
      :param kwargs: A dictionary of attributes.
      """
      for key, value in kwargs.items():
          if key in self.estimator_params:
              if hasattr(type(self), key) and isinstance(
                  getattr(type(self), key), property
              ):
                  if getattr(type(self), key).fset is not None:
                      setattr(self, key, value)
                  else:
                      setattr(self, "_" + key, value)
              elif hasattr(self, "_" + key):
                  setattr(self, "_" + key, value)
              else:
                  if key == "preprocessing":
                      setattr(self, key, self._set_preprocessing(value))
                  elif key == "preprocessing_defences":
                      setattr(
                          self,
                          key,
                          self._set_preprocessing_defences(value),
                      )
                  elif key == "postprocessing_defences":
                      setattr(
                          self,
                          key,
                          self._set_postprocessing_defences(value),
                      )
                  else:
                      setattr(self, key, value)
          else:  # pragma: no cover
              raise ValueError(
                  f"Unexpected parameter `{key}` found in kwargs."
              )
      self._update_preprocessing_operations()
      self._check_params()
  
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 6 for calling the BaseEstimator obj's underlying member method code with example usage: obj.set_params() without return types