def predict(self, X: np.ndarray, batch_size: int = 64, return_instance_score: bool = True) \ -> Dict[Dict[str, str], Dict[str, np.ndarray]]: """ Predict whether instances are adversarial instances or not. Parameters ---------- X Batch of instances. batch_size Batch size used when computing scores. return_instance_score Whether to return instance level adversarial scores. Returns ------- Dictionary containing 'meta' and 'data' dictionaries. 'meta' has the model's metadata. 'data' contains the adversarial predictions and instance level adversarial scores. """ adv_score = self.score(X, batch_size=batch_size) # values above threshold are adversarial adv_pred = (adv_score > self.threshold).astype(int) # type: ignore # populate output dict ad = adversarial_prediction_dict() ad['meta'] = self.meta ad['data']['is_adversarial'] = adv_pred if return_instance_score: ad['data']['instance_score'] = adv_score return ad
def predict( self, X: np.ndarray, batch_size: int = int(1e10), return_instance_score: bool = True, ) -> Dict[Dict[str, str], Dict[str, np.ndarray]]: assert return_instance_score == self.expected_return_instance_score ad = adversarial_prediction_dict() ad["data"]["is_adversarial"] = self.expected_is_adversarial return ad