class_docstr: Implementation of the Knockoff Nets attack from Orekondy et al. (2018).
  
  | Paper link: https://arxiv.org/abs/1812.02766
code: def _check_params(self) -> None:
      if (
          not isinstance(self.batch_size_fit, int)
          or self.batch_size_fit <= 0
      ):
          raise ValueError(
              "The size of batches for fitting the thieved classifier must be a positive integer."
          )
  
      if (
          not isinstance(self.batch_size_query, int)
          or self.batch_size_query <= 0
      ):
          raise ValueError(
              "The size of batches for querying the victim classifier must be a positive integer."
          )
  
      if not isinstance(self.nb_epochs, int) or self.nb_epochs <= 0:
          raise ValueError(
              "The number of epochs must be a positive integer."
          )
  
      if not isinstance(self.nb_stolen, int) or self.nb_stolen <= 0:
          raise ValueError(
              "The number of queries submitted to the victim classifier must be a positive integer."
          )
  
      if self.sampling_strategy not in ["random", "adaptive"]:
          raise ValueError(
              "Sampling strategy must be either `random` or `adaptive`."
          )
  
      if self.reward not in ["cert", "div", "loss", "all"]:
          raise ValueError(
              "Reward type must be in ['cert', 'div', 'loss', 'all']."
          )
  
      if not isinstance(self.verbose, bool):
          raise ValueError(
              "The argument `verbose` has to be of type bool."
          )
      if not isinstance(self.use_probability, bool):
          raise ValueError(
              "The argument `use_probability` has to be of type bool."
          )
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import Optional, TYPE_CHECKING, Union
  import numpy
  from tqdm.auto import trange
  from art.config import ART_NUMPY_DTYPE
  from art.attacks.attack import ExtractionAttack
  from art.estimators.estimator import BaseEstimator
  from art.estimators.classification.classifier import ClassifierMixin
  from art.utils import to_categorical
label_desc: Use image node_id 13 for calling the KnockoffNets obj's underlying member method code with example usage: obj._check_params() without return types