class_docstr: Implementation of the attack framework proposed by Inkawhich et al. (2018). Prioritizes the frame of a sequential
  input to be adversarially perturbed based on the saliency score of each frame.
  
  | Paper link: https://arxiv.org/abs/1811.11875
class_docstr_tok: ["Implementation","of","the","attack","framework","proposed","by","Inkawhich","et","al",".","(","2018",")",".","Prioritizes","the","frame","of","a","sequential","input","to","be","adversarially","perturbed","based","on","the","saliency","score","of","each","frame",".","|","Paper","link",":","https",":","\/\/arxiv.org\/abs\/1811.11875"]
code: def _check_params(self) -> None:
      from art.attacks.evasion.projected_gradient_descent.projected_gradient_descent import (
          ProjectedGradientDescent,
      )
      from art.attacks.evasion.iterative_method import (
          BasicIterativeMethod,
      )
      from art.attacks.evasion.fast_gradient import FastGradientMethod
  
      if not isinstance(
          self.attacker,
          (
              ProjectedGradientDescent,
              BasicIterativeMethod,
              FastGradientMethod,
          ),
      ):
          raise ValueError(
              "The attacker must be either of class 'ProjectedGradientDescent', 'BasicIterativeMethod' or "
              "'FastGradientMethod'"
          )
  
      if self.method not in self.method_list:
          raise ValueError(
              "Method must be either 'iterative_saliency', 'iterative_saliency_refresh' or 'one_shot'."
          )
  
      if self.frame_index < 1:
          raise ValueError(
              "The index `frame_index` of the frame dimension has to be >=1."
          )
  
      if self.batch_size <= 0:
          raise ValueError(
              "The batch size `batch_size` has to be positive."
          )
  
      if not self.estimator == self.attacker.estimator:
          raise Warning(
              "Different classifiers given for computation of saliency scores and adversarial noise."
          )
  
      if not isinstance(self.verbose, bool):
          raise ValueError(
              "The argument `verbose` has to be of type bool."
          )
  
file_path: adversarial-robustness-toolbox/art/attacks/evasion/frame_saliency.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.estimator import BaseEstimator, NeuralNetworkMixin
  from art.estimators.classification.classifier import ClassGradientsMixin
  from art.attacks.attack import EvasionAttack
  from art.utils import compute_success_array, get_labels_np_array, check_and_transform_label_format
label_desc: Use image node_id 5 for calling the FrameSaliencyAttack obj's underlying member method code with example usage: obj._check_params() without return types