@@ -47,6 +47,8 @@ class CarliniWagnerASR(ImperceptibleASR):
4747 "learning_rate" ,
4848 "max_iter" ,
4949 "batch_size" ,
50+ "decrease_factor_eps" ,
51+ "num_iter_decrease_eps" ,
5052 ]
5153
5254 def __init__ (
@@ -55,6 +57,8 @@ def __init__(
5557 eps : float = 2000.0 ,
5658 learning_rate : float = 100.0 ,
5759 max_iter : int = 1000 ,
60+ decrease_factor_eps : float = 0.8 ,
61+ num_iter_decrease_eps : int = 10 ,
5862 batch_size : int = 16 ,
5963 ):
6064 """
@@ -64,6 +68,8 @@ def __init__(
6468 :param eps: Initial max norm bound for adversarial perturbation.
6569 :param learning_rate: Learning rate of attack.
6670 :param max_iter: Number of iterations.
71+ :param decrease_factor_eps: Decrease factor for epsilon (Paper default: 0.8).
72+ :param num_iter_decrease_eps: Iterations after which to decrease epsilon if attack succeeds (Paper default: 10).
6773 :param batch_size: Batch size.
6874 """
6975 # pylint: disable=W0231
@@ -76,14 +82,14 @@ def __init__(
7682 self .max_iter_1 = max_iter
7783 self .max_iter_2 = 0
7884 self ._targeted = True
85+ self .decrease_factor_eps = decrease_factor_eps
86+ self .num_iter_decrease_eps = num_iter_decrease_eps
7987 self .batch_size = batch_size
8088
8189 # set remaining stage 2 params to some random values
8290 self .alpha = 0.1
8391 self .learning_rate_2 = 0.1
8492 self .loss_theta_min = 0.0
85- self .decrease_factor_eps : float = 1.0
86- self .num_iter_decrease_eps : int = 1
8793 self .increase_factor_alpha : float = 1.0
8894 self .num_iter_increase_alpha : int = 1
8995 self .decrease_factor_alpha : float = 1.0
0 commit comments