def __init__(
        self,
        predict_fn: Callable[[np.ndarray], np.ndarray],
        num_samples: int = 20,
        false_acceptance_rate: float = 0.01,
        **kwargs,
    ) -> None:  # pragma: no cover
        """
        Create a STRIP defense

        :param predict_fn: The predict function of the original classifier
        :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
        """
        super().__init__(**kwargs)
        self.predict_fn = predict_fn
        self.num_samples = num_samples
        self.false_acceptance_rate = false_acceptance_rate
        self.entropy_threshold: float | None = None
        self.validation_data: np.ndarray | None = None

        Create a STRIP defense

        :param predict_fn: The predict function of the original classifier
        :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
        
art/estimators/poison_mitigation/strip/strip.py