PGDL2¶
PGDL2
¶
Bases: Attack
The Projected Gradient Descent (PGD) attack, with L2 constraint.
From the paper: Towards Deep Learning Models Resistant to Adversarial Attacks.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model
|
Module | AttackModel
|
The model to attack. |
required |
normalize
|
Callable[[Tensor], Tensor] | None
|
A transform to normalize images. |
None
|
device
|
device | None
|
Device to use for tensors. Defaults to cuda if available. |
None
|
eps
|
float
|
The maximum perturbation, measured in L2. Defaults to 1.0. |
1.0
|
steps
|
int
|
Number of steps. Defaults to 10. |
10
|
alpha
|
float | None
|
Step size, |
None
|
random_start
|
bool
|
Start from random uniform perturbation. Defaults to True. |
True
|
clip_min
|
float
|
Minimum value for clipping. Defaults to 0.0. |
0.0
|
clip_max
|
float
|
Maximum value for clipping. Defaults to 1.0. |
1.0
|
targeted
|
bool
|
Targeted attack if True. Defaults to False. |
False
|
Source code in torchattack/pgdl2.py
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
|
forward(x, y)
¶
Perform PGD on a batch of images.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
x
|
Tensor
|
A batch of images. Shape: (N, C, H, W). |
required |
y
|
Tensor
|
A batch of labels. Shape: (N). |
required |
Returns:
Type | Description |
---|---|
Tensor
|
The perturbed images if successful. Shape: (N, C, H, W). |