コード例 #1
0
ファイル: test.py プロジェクト: steven202/robust_union
def get_attack(attack, fmodel):
    args = []
    kwargs = {}
    # L0
    if attack == 'SAPA':
        A = fa.SaltAndPepperNoiseAttack()
    elif attack == 'PA':
        A = fa.L1BrendelBethgeAttack()

    # L2
    elif 'IGD' in attack:
        A = fa.L2BasicIterativeAttack()
    elif attack == 'AGNA':
        A = fa.L2AdditiveGaussianNoiseAttack()
    elif attack == 'BA':
        A = fa.BoundaryAttack()
    elif 'DeepFool' in attack:
        A = fa.L2DeepFoolAttack()
    elif attack == 'PAL2':
        A = fa.L2BrendelBethgeAttack()
    elif attack == "CWL2":
        A = fa.L2CarliniWagnerAttack()

    # L inf
    elif 'FGSM' in attack and not 'IFGSM' in attack:
        A = fa.FGSM()
    elif 'PGD' in attack:
        A = fa.LinfPGD()
    elif 'IGM' in attack:
        A = fa.LinfBrendelBethgeAttack()
    else:
        raise Exception('Not implemented')
    return A, 0, 0, 0
コード例 #2
0
 AttackTestTarget(fa.LinfDeepFoolAttack(steps=50), uses_grad=True),
 AttackTestTarget(fa.BoundaryAttack(steps=50)),
 AttackTestTarget(
     fa.BoundaryAttack(
         steps=110,
         init_attack=fa.LinearSearchBlendedUniformNoiseAttack(steps=50),
         update_stats_every_k=1,
     )),
 AttackTestTarget(fa.SaltAndPepperNoiseAttack(steps=50),
                  None,
                  uses_grad=True),
 AttackTestTarget(fa.SaltAndPepperNoiseAttack(steps=50, channel_axis=1),
                  None,
                  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),
コード例 #3
0
    (fa.LinfDeepFoolAttack(steps=50), None, True, False),
    (fa.BoundaryAttack(steps=50), None, False, False),
    (
        fa.BoundaryAttack(
            steps=110,
            init_attack=fa.LinearSearchBlendedUniformNoiseAttack(steps=50),
            update_stats_every_k=1,
        ),
        None,
        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(
コード例 #4
0
     fa.SaltAndPepperNoiseAttack(steps=50),
     None,
     uses_grad=True,
     stochastic_attack=True,
 ),
 AttackTestTarget(
     fa.SaltAndPepperNoiseAttack(steps=50, channel_axis=1),
     None,
     uses_grad=True,
     stochastic_attack=True,
 ),
 AttackTestTarget(
     fa.LinearSearchBlendedUniformNoiseAttack(steps=50), None, stochastic_attack=True
 ),
 AttackTestTarget(
     fa.L2AdditiveGaussianNoiseAttack(), 3000.0, stochastic_attack=True
 ),
 AttackTestTarget(
     fa.L2ClippingAwareAdditiveGaussianNoiseAttack(), 500.0, stochastic_attack=True
 ),
 AttackTestTarget(fa.LinfAdditiveUniformNoiseAttack(), 10.0, stochastic_attack=True),
 AttackTestTarget(
     fa.L2RepeatedAdditiveGaussianNoiseAttack(check_trivial=False),
     1000.0,
     stochastic_attack=True,
 ),
 AttackTestTarget(
     fa.L2ClippingAwareRepeatedAdditiveGaussianNoiseAttack(check_trivial=False),
     200.0,
     stochastic_attack=True,
 ),