@@ -35,15 +35,24 @@ def test_poison(art_warning, get_default_mnist_subset, image_dl_estimator):
35
35
try :
36
36
(x_train , y_train ), (_ , _ ) = get_default_mnist_subset
37
37
classifier , _ = image_dl_estimator (functional = True )
38
- backdoor = PoisoningAttackBackdoor (add_pattern_bd )
39
- target = 0
40
- source = 1
38
+
39
+ def mod (x ):
40
+ original_dtype = x .dtype
41
+ x = np .transpose (x , (0 , 2 , 3 , 1 )).astype (np .float32 )
42
+ x = add_pattern_bd (x )
43
+ x = np .transpose (x , (0 , 3 , 1 , 2 )).astype (np .float32 )
44
+ return x .astype (original_dtype )
45
+
46
+ backdoor = PoisoningAttackBackdoor (mod )
47
+ target = y_train [0 ]
48
+ diff_index = list (set (np .arange (len (y_train ))) - set (np .where (np .all (y_train == target , axis = 1 ))[0 ]))[0 ]
49
+ source = y_train [diff_index ]
41
50
attack = HiddenTriggerBackdoor (
42
51
classifier ,
43
- eps = 0.3 ,
52
+ eps = 0.01 ,
44
53
target = target ,
45
54
source = source ,
46
- feature_layer = len (classifier .layers ) - 2 ,
55
+ feature_layer = len (classifier .layer_names ) - 2 ,
47
56
backdoor = backdoor ,
48
57
decay_coeff = 0.95 ,
49
58
decay_iter = 1 ,
@@ -68,17 +77,27 @@ def test_check_params(art_warning, get_default_mnist_subset, image_dl_estimator)
68
77
try :
69
78
(x_train , y_train ), (_ , _ ) = get_default_mnist_subset
70
79
classifier , _ = image_dl_estimator (functional = True )
71
- backdoor = PoisoningAttackBackdoor (add_pattern_bd )
72
- target = np .expand_dims (x_train [3 ], 0 )
80
+
81
+ def mod (x ):
82
+ original_dtype = x .dtype
83
+ x = np .transpose (x , (0 , 2 , 3 , 1 )).astype (np .float32 )
84
+ x = add_pattern_bd (x )
85
+ x = np .transpose (x , (0 , 3 , 1 , 2 )).astype (np .float32 )
86
+ return x .astype (original_dtype )
87
+
88
+ backdoor = PoisoningAttackBackdoor (mod )
89
+ target = y_train [0 ]
90
+ diff_index = list (set (np .arange (len (y_train ))) - set (np .where (np .all (y_train == target , axis = 1 ))[0 ]))[0 ]
91
+ source = y_train [diff_index ]
73
92
74
93
# Test target/source not numpy arrays
75
94
with pytest .raises (ValueError ):
76
95
_ = HiddenTriggerBackdoor (
77
96
classifier ,
78
97
eps = 0.3 ,
79
- target = target ,
80
- source = source ,
81
- feature_layer = len (classifier .layers ) - 2 ,
98
+ target = 1 ,
99
+ source = 0 ,
100
+ feature_layer = len (classifier .layer_names ) - 2 ,
82
101
backdoor = backdoor ,
83
102
decay_coeff = 0.95 ,
84
103
decay_iter = 1 ,
@@ -94,7 +113,7 @@ def test_check_params(art_warning, get_default_mnist_subset, image_dl_estimator)
94
113
eps = 0.3 ,
95
114
target = target ,
96
115
source = source ,
97
- feature_layer = len (classifier .layers ) - 2 ,
116
+ feature_layer = len (classifier .layer_names ) - 2 ,
98
117
backdoor = backdoor ,
99
118
decay_coeff = 0.95 ,
100
119
decay_iter = 1 ,
@@ -110,7 +129,7 @@ def test_check_params(art_warning, get_default_mnist_subset, image_dl_estimator)
110
129
eps = 0.3 ,
111
130
target = source ,
112
131
source = source ,
113
- feature_layer = len (classifier .layers ) - 2 ,
132
+ feature_layer = len (classifier .layer_names ) - 2 ,
114
133
backdoor = backdoor ,
115
134
decay_coeff = 0.95 ,
116
135
decay_iter = 1 ,
@@ -125,7 +144,7 @@ def test_check_params(art_warning, get_default_mnist_subset, image_dl_estimator)
125
144
eps = 0.3 ,
126
145
target = target ,
127
146
source = source ,
128
- feature_layer = len (classifier .layers ) - 2 ,
147
+ feature_layer = len (classifier .layer_names ) - 2 ,
129
148
backdoor = source ,
130
149
decay_coeff = 0.95 ,
131
150
decay_iter = 1 ,
@@ -140,7 +159,7 @@ def test_check_params(art_warning, get_default_mnist_subset, image_dl_estimator)
140
159
eps = - 1 ,
141
160
target = target ,
142
161
source = source ,
143
- feature_layer = len (classifier .layers ) - 2 ,
162
+ feature_layer = len (classifier .layer_names ) - 2 ,
144
163
backdoor = backdoor ,
145
164
decay_coeff = 0.95 ,
146
165
decay_iter = 1 ,
@@ -163,7 +182,7 @@ def test_check_params(art_warning, get_default_mnist_subset, image_dl_estimator)
163
182
batch_size = 1 ,
164
183
poison_percent = 0.1 ,
165
184
)
166
- # Test negative feature yaer
185
+ # Test negative feature layer
167
186
with pytest .raises (ValueError ):
168
187
_ = HiddenTriggerBackdoor (
169
188
classifier ,
@@ -185,7 +204,7 @@ def test_check_params(art_warning, get_default_mnist_subset, image_dl_estimator)
185
204
eps = 0.3 ,
186
205
target = target ,
187
206
source = source ,
188
- feature_layer = len (classifier .layers ) - 2 ,
207
+ feature_layer = len (classifier .layer_names ) - 2 ,
189
208
backdoor = backdoor ,
190
209
decay_coeff = - 1 ,
191
210
decay_iter = 1 ,
@@ -200,7 +219,7 @@ def test_check_params(art_warning, get_default_mnist_subset, image_dl_estimator)
200
219
eps = 0.3 ,
201
220
target = target ,
202
221
source = source ,
203
- feature_layer = len (classifier .layers ) - 2 ,
222
+ feature_layer = len (classifier .layer_names ) - 2 ,
204
223
backdoor = backdoor ,
205
224
decay_coeff = 0.95 ,
206
225
decay_iter = 1 ,
0 commit comments