secmlt.adv.evasion.modular_attacks package#
Submodules#
secmlt.adv.evasion.modular_attacks.eot_gradient module#
Modular attack component with Expectation over Transformation (EoT) gradient.
- class secmlt.adv.evasion.modular_attacks.eot_gradient.EoTGradientMixin(eot_samples: int = 10, eot_radius: float = 0.03, *args, **kwargs)[source]#
Bases:
objectModular attack component with Expectation over Transformation (EoT) gradient.
Add as a mixin to any modular attack to enable EoT gradient computation.
secmlt.adv.evasion.modular_attacks.modular_attack module#
Implementation of modular iterative attacks with customizable components.
- class secmlt.adv.evasion.modular_attacks.modular_attack.ModularEvasionAttack(y_target: int | None, num_steps: int, step_size: float, loss_function: str | torch.nn.Module, optimizer_cls: str | partial[Optimizer], scheduler_cls: str | partial[_LRScheduler], manipulation_function: Manipulation, initializer: Initializer, gradient_processing: GradientProcessing, trackers: list[Tracker] | Tracker | None = None, optimizer_kwargs: dict | None = None, scheduler_kwargs: dict | None = None)[source]#
Bases:
BaseEvasionAttackModular evasion attack.
- forward_loss(model: BaseModel, x: torch.Tensor, target: torch.Tensor) tuple[torch.Tensor, torch.Tensor][source]#
Compute the forward for the loss function.
- Parameters:
model (BaseModel) – Model used by the attack run.
x (torch.Tensor) – Input sample.
target (torch.Tensor) – Target for computing the loss.
- Returns:
Output scores and loss.
- Return type:
tuple[torch.Tensor, torch.Tensor]
- property loss_function: Module#
Get the loss function of the attack.
- property manipulation_function: Manipulation#
Get the manipulation function for the attack.
- Returns:
The manipulation function used in the attack.
- Return type:
secmlt.adv.evasion.modular_attacks.modular_attack_fixed_eps module#
Implementation of fixed-epsilon iterative attacks with customizable components.
- class secmlt.adv.evasion.modular_attacks.modular_attack_fixed_eps.ModularEvasionAttackFixedEps(y_target: int | None, num_steps: int, step_size: float, loss_function: str | torch.nn.Module, optimizer_cls: str | partial[Optimizer], scheduler_cls: str | partial[LRScheduler], manipulation_function: Manipulation, initializer: Initializer, gradient_processing: GradientProcessing, trackers: list[Tracker] | Tracker | None = None)[source]#
Bases:
ModularEvasionAttackModular evasion attack for fixed-epsilon attacks.
secmlt.adv.evasion.modular_attacks.modular_attack_min_distance module#
Implementation of min-distance iterative attacks with customizable components.
- class secmlt.adv.evasion.modular_attacks.modular_attack_min_distance.ModularEvasionAttackMinDistance(y_target: int | None, num_steps: int, step_size: float, loss_function: str | torch.nn.Module, optimizer_cls: str | partial[Optimizer], scheduler_cls: str | partial[LRScheduler], manipulation_function: Manipulation, initializer: Initializer, gradient_processing: GradientProcessing, trackers: list[Tracker] | Tracker | None = None, gamma: float = 0.05, min_step_size: float | None = None, min_gamma: float = 0.001)[source]#
Bases:
ModularEvasionAttackModular evasion attack for min-distance attacks.
Module contents#
Attacks for evasion using the modular approach native to SecMLT.