class_docstr: Implementation of STRIP: A Defence Against Trojan Attacks on Deep Neural Networks (Gao et. al. 2020)
  
  | Paper link: https://arxiv.org/abs/1902.06531
docstr: Create a STRIP defense
  
  :param num_samples: The number of samples to use to test entropy at inference time
  :param false_acceptance_rate: The percentage of acceptable false acceptance
code: def __call__(  # type: ignore
      self,
      num_samples: int = 20,
      false_acceptance_rate: float = 0.01,
  ) -> "CLASSIFIER_TYPE":
      """
      Create a STRIP defense
  
      :param num_samples: The number of samples to use to test entropy at inference time
      :param false_acceptance_rate: The percentage of acceptable false acceptance
      """
      base_cls = self.classifier.__class__
      base_cls_name = self.classifier.__class__.__name__
      self.classifier.__class__ = type(
          base_cls_name,
          (STRIPMixin, base_cls),
          dict(
              num_samples=num_samples,
              false_acceptance_rate=false_acceptance_rate,
              predict_fn=self.classifier.predict,
          ),
      )
  
      return self.classifier
  
file_path: adversarial-robustness-toolbox/art/defences/transformer/poisoning/strip.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import Optional, TYPE_CHECKING
  import numpy
  from art.defences.transformer.transformer import Transformer
  from art.estimators.poison_mitigation.strip import STRIPMixin
label_desc: Use image node_id 2 for calling the STRIP obj's underlying member method code with example usage: obj.__call__(num_samples, false_acceptance_rate) and returns: self