diff --git a/foolbox/attacks/spatial_attack.py b/foolbox/attacks/spatial_attack.py index 1368a3c8..c4ab3e7d 100644 --- a/foolbox/attacks/spatial_attack.py +++ b/foolbox/attacks/spatial_attack.py @@ -114,4 +114,17 @@ def random_search_generator() -> Generator[Any, Any, Any]: return restore_type(results) def repeat(self, times: int) -> Attack: - raise NotImplementedError + if self.grid_search: + raise ValueError( + "repeat is not supported if attack is deterministic" + ) # attack is deterministic + else: + random_steps = self.random_steps * times + return SpatialAttack( + max_translation=self.max_trans, + max_rotation=self.max_rot, + num_translations=self.num_trans, + num_rotations=self.num_rots, + grid_search=self.grid_search, + random_steps=random_steps, + )