class_docstr: Implementation of the MIFace algorithm from Fredrikson et al. (2015). While in that paper the attack is demonstrated
  specifically against face recognition models, it is applicable more broadly to classifiers with continuous features
  which expose class gradients.
  
  | Paper link: https://dl.acm.org/doi/10.1145/2810103.2813677
class_docstr_tok: ["Implementation","of","the","MIFace","algorithm","from","Fredrikson","et","al",".","(","2015",")",".","While","in","that","paper","the","attack","is","demonstrated","specifically","against","face","recognition","models",",","it","is","applicable","more","broadly","to","classifiers","with","continuous","features","which","expose","class","gradients",".","|","Paper","link",":","https",":","\/\/dl.acm.org\/doi\/10.1145\/2810103.2813677"]
code: def _check_params(self) -> None:
      if not isinstance(self.max_iter, int) or self.max_iter < 0:
          raise ValueError(
              "The number of iterations must be a non-negative integer."
          )
  
      if (
          not isinstance(self.window_length, int)
          or self.window_length < 0
      ):
          raise ValueError(
              "The window length must be a non-negative integer."
          )
  
      if not isinstance(self.threshold, float) or self.threshold < 0.0:
          raise ValueError(
              "The threshold must be a non-negative float."
          )
  
      if (
          not isinstance(self.learning_rate, float)
          or self.learning_rate < 0.0
      ):
          raise ValueError(
              "The learning rate must be a non-negative float."
          )
  
      if not isinstance(self.batch_size, int) or self.batch_size < 0:
          raise ValueError(
              "The batch size must be a non-negative integer."
          )
  
      if not isinstance(self.verbose, bool):
          raise ValueError(
              "The argument `verbose` has to be of type bool."
          )
  
file_path: adversarial-robustness-toolbox/art/attacks/inference/model_inversion/mi_face.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import Optional, TYPE_CHECKING
  import numpy
  from tqdm.auto import trange
  from art.config import ART_NUMPY_DTYPE
  from art.estimators.classification.classifier import ClassifierMixin, ClassGradientsMixin
  from art.estimators.estimator import BaseEstimator
  from art.attacks.attack import InferenceAttack
  from art.utils import get_labels_np_array, check_and_transform_label_format
label_desc: Use image node_id 3 for calling the MIFace obj's underlying member method code with example usage: obj._check_params() without return types