def METHOD_NAME(self):
    self._check_x("run_attack")
    self.hub.set_context(stage="attack")
    x, y = self.x, self.y
    with self.profiler.measure("Attack"):
        if self.use_label:
            y_target = y
        elif self.targeted:
            y_target = self.label_targeter.generate(y)
        else:
            y_target = None
        x_adv = self.attack.generate(
            x=x,
            y=y_target,
            y_patch_metadata=[self.y_patch_metadata],
            **self.generate_kwargs,
        )
    self.hub.set_context(stage="adversarial")
    # Ensure that input sample isn't overwritten by model
    x_adv.flags.writeable = False
    y_pred_adv = self.model.predict(x_adv, **self.predict_kwargs)
    self.probe.update(x_adv=x_adv, y_pred_adv=y_pred_adv)
    if self.targeted:
        self.probe.update(y_target=y_target)
    self.x_adv, self.y_target, self.y_pred_adv = x_adv, y_target, y_pred_adv