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: object

Modular 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: BaseEvasionAttack

Modular 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:

Manipulation

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: ModularEvasionAttack

Modular 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: ModularEvasionAttack

Modular evasion attack for min-distance attacks.

Module contents#

Attacks for evasion using the modular approach native to SecMLT.