Exemplo n.º 1
0
        False,
        False,
    ),
    (fa.SaltAndPepperNoiseAttack(steps=50), None, True, False),
    (fa.SaltAndPepperNoiseAttack(steps=50, channel_axis=1), None, True, False),
    (fa.LinearSearchBlendedUniformNoiseAttack(steps=50), None, False, False),
    (fa.L2AdditiveGaussianNoiseAttack(), 2500.0, False, False),
    (fa.LinfAdditiveUniformNoiseAttack(), 10.0, False, False),
    (
        fa.L2RepeatedAdditiveGaussianNoiseAttack(check_trivial=False),
        1000.0,
        False,
        False,
    ),
    (fa.L2RepeatedAdditiveGaussianNoiseAttack(), 1000.0, False, False),
    (fa.L2RepeatedAdditiveUniformNoiseAttack(), 1000.0, False, False),
    (fa.LinfRepeatedAdditiveUniformNoiseAttack(), 3.0, False, False),
]


@pytest.mark.parametrize("attack_eps_grad_real", attacks, ids=get_attack_id)
def test_untargeted_attacks(
    fmodel_and_data_ext_for_attacks: Tuple[Tuple[fbn.Model, ep.Tensor,
                                                 ep.Tensor], bool],
    attack_eps_grad_real: Tuple[fbn.Attack, Optional[float], bool, bool],
) -> None:

    attack, eps, attack_uses_grad, requires_real_model = attack_eps_grad_real
    (fmodel, x, y), real = fmodel_and_data_ext_for_attacks
    if requires_real_model and not real:
        pytest.skip()
Exemplo n.º 2
0
                     uses_grad=True),
    AttackTestTarget(fa.LinearSearchBlendedUniformNoiseAttack(steps=50), None),
    AttackTestTarget(fa.L2AdditiveGaussianNoiseAttack(), 2500.0),
    AttackTestTarget(fa.L2ClippingAwareAdditiveGaussianNoiseAttack(), 500.0),
    AttackTestTarget(fa.LinfAdditiveUniformNoiseAttack(), 10.0),
    AttackTestTarget(
        fa.L2RepeatedAdditiveGaussianNoiseAttack(check_trivial=False), 1000.0),
    AttackTestTarget(
        fa.L2ClippingAwareRepeatedAdditiveGaussianNoiseAttack(
            check_trivial=False),
        200.0,
    ),
    AttackTestTarget(fa.L2RepeatedAdditiveGaussianNoiseAttack(), 1000.0),
    AttackTestTarget(fa.L2ClippingAwareRepeatedAdditiveGaussianNoiseAttack(),
                     200.0),
    AttackTestTarget(fa.L2RepeatedAdditiveUniformNoiseAttack(), 1000.0),
    AttackTestTarget(fa.L2ClippingAwareRepeatedAdditiveUniformNoiseAttack(),
                     200.0),
    AttackTestTarget(fa.LinfRepeatedAdditiveUniformNoiseAttack(), 3.0),
]


@pytest.mark.parametrize("attack_test_target", attacks, ids=get_attack_id)
def test_untargeted_attacks(
    fmodel_and_data_ext_for_attacks: ModelDescriptionAndData,
    attack_test_target: AttackTestTarget,
) -> None:

    (fmodel, x, y), real = fmodel_and_data_ext_for_attacks
    if attack_test_target.requires_real_model and not real:
        pytest.skip()
Exemplo n.º 3
0
    ),
    AttackTestTarget(
        fa.L2ClippingAwareRepeatedAdditiveGaussianNoiseAttack(check_trivial=False),
        200.0,
        stochastic_attack=True,
    ),
    AttackTestTarget(
        fa.L2RepeatedAdditiveGaussianNoiseAttack(), 1000.0, stochastic_attack=True
    ),
    AttackTestTarget(
        fa.L2ClippingAwareRepeatedAdditiveGaussianNoiseAttack(),
        200.0,
        stochastic_attack=True,
    ),
    AttackTestTarget(
        fa.L2RepeatedAdditiveUniformNoiseAttack(), 1000.0, stochastic_attack=True
    ),
    AttackTestTarget(
        fa.L2ClippingAwareRepeatedAdditiveUniformNoiseAttack(),
        200.0,
        stochastic_attack=True,
    ),
    AttackTestTarget(
        fa.LinfRepeatedAdditiveUniformNoiseAttack(), 3.0, stochastic_attack=True
    ),
]


@pytest.mark.parametrize("attack_test_target", attacks, ids=get_attack_id)
def test_untargeted_attacks(
    fmodel_and_data_ext_for_attacks: ModeAndDataAndDescription,