-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathrun_attack_iter.py
More file actions
53 lines (46 loc) · 2.08 KB
/
run_attack_iter.py
File metadata and controls
53 lines (46 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
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
"""Pytorch Iterate Fast-Gradient attack runner.
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import argparse
from attacks import AttackIterative
from attack import run_attack
parser = argparse.ArgumentParser(description='Defence')
parser.add_argument('--input_dir', metavar='DIR',
help='Input directory with images.')
parser.add_argument('--output_dir', metavar='FILE',
help='Output directory to save images.')
parser.add_argument('--checkpoint_path', default=None,
help='Path to network checkpoint.')
parser.add_argument('--img_size', type=int, default=299, metavar='N',
help='Image patch size (default: 299)')
parser.add_argument('--batch_size', type=int, default=32, metavar='N',
help='Batch size (default: 32)')
parser.add_argument('--max_epsilon', type=int, default=16, metavar='N',
help='Maximum size of adversarial perturbation. (default: 16.0)')
parser.add_argument('--steps', type=int, default=10, metavar='N',
help='Number of steps to run attack for')
parser.add_argument('--step_alpha', type=float, default=0.0,
help='Per step scaling constant, defaults to epsilon/steps')
parser.add_argument('--norm', default='inf', type=float,
help='Gradient norm.')
parser.add_argument('--targeted', action='store_true', default=False,
help='Targeted attack')
parser.add_argument('--no_gpu', action='store_true', default=False,
help='Disable GPU training')
parser.add_argument('--debug', action='store_true', default=False,
help='Enable verbose debug output')
def main():
args = parser.parse_args()
attack = AttackIterative(
targeted=args.targeted,
max_epsilon=args.max_epsilon,
norm=args.norm,
step_alpha=args.step_alpha,
num_steps=args.steps,
cuda=not args.no_gpu,
debug=args.debug)
run_attack(args, attack)
if __name__ == '__main__':
main()