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)