class_docstr: Implementation of the boundary attack from Brendel et al. (2018). This is a powerful black-box attack that
  only requires final class prediction.
  
  | Paper link: https://arxiv.org/abs/1712.04248
class_docstr_tok: ["Implementation","of","the","boundary","attack","from","Brendel","et","al",".","(","2018",")",".","This","is","a","powerful","black-box","attack","that","only","requires","final","class","prediction",".","|","Paper","link",":","https",":","\/\/arxiv.org\/abs\/1712.04248"]
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.num_trial, int) or self.num_trial < 0:
          raise ValueError(
              "The number of trials must be a non-negative integer."
          )
  
      if not isinstance(self.sample_size, int) or self.sample_size <= 0:
          raise ValueError(
              "The number of samples must be a positive integer."
          )
  
      if not isinstance(self.init_size, int) or self.init_size <= 0:
          raise ValueError(
              "The number of initial trials must be a positive integer."
          )
  
      if self.epsilon <= 0:
          raise ValueError(
              "The initial step size for the step towards the target must be positive."
          )
  
      if self.delta <= 0:
          raise ValueError(
              "The initial step size for the orthogonal step must be positive."
          )
  
      if self.step_adapt <= 0 or self.step_adapt >= 1:
          raise ValueError(
              "The adaptation factor must be in the range (0, 1)."
          )
  
      if (
          not isinstance(self.min_epsilon, (float, int))
          or self.min_epsilon < 0
      ):
          raise ValueError("The minimum epsilon must be non-negative.")
  
      if not isinstance(self.verbose, bool):
          raise ValueError(
              "The argument `verbose` has to be of type bool."
          )
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import List, Optional, Tuple, TYPE_CHECKING
  import numpy
  from tqdm.auto import tqdm, trange
  from art.attacks.attack import EvasionAttack
  from art.config import ART_NUMPY_DTYPE
  from art.estimators.estimator import BaseEstimator
  from art.estimators.classification.classifier import ClassifierMixin
  from art.utils import compute_success, to_categorical, check_and_transform_label_format, get_labels_np_array
label_desc: Use image node_id 8 for calling the BoundaryAttack obj's underlying member method code with example usage: obj._check_params() without return types