def test_attack_eg(request, bn_model, bn_criterion, bn_images, bn_labels): GradientEstimator = request.param gradient_estimator = GradientEstimator(epsilon=0.01) model = ModelWithEstimatedGradients(bn_model, gradient_estimator) attack = Attack(model, bn_criterion) advs = attack(bn_images, bn_labels, unpack=False) for adv in advs: assert adv.perturbed is not None assert adv.distance.value < np.inf
def eg_bn_model(): cm_model = contextmanager(bn_model) with cm_model() as model: gradient_estimator = GradientEstimator(epsilon=0.01) model = ModelWithEstimatedGradients(model, gradient_estimator) yield model