def _check_adv_example(self, secml_attack, fb_attack): x0_tensor = as_tensor(self.x0.atleast_2d()) y0_tensor = as_tensor(self.y0.ravel()) y_target = secml_attack.y_target if y_target is None: criterion = fb.criteria.Misclassification(y0_tensor) else: criterion = fb.criteria.TargetedMisclassification(torch.tensor([y_target])) y_pred, scores, adv_ds, f_obj = secml_attack.run(self.x0, self.y0) _, adv_fb, _ = fb_attack(secml_attack.f_model, x0_tensor, criterion, epsilons=secml_attack.epsilon) adv_fb = CArray(adv_fb.numpy()) return adv_ds, adv_fb
def load(self, *args, **kwargs): patterns, labels = self._tv_dataset.data, self._tv_dataset.targets patterns = CArray(patterns.view(len(labels), -1).numpy()) labels = CArray(labels.numpy()) return CDataset(patterns, labels)