Source code for secmlt.tests.test_aggregators

import torch
from secmlt.adv.evasion.aggregators.ensemble import (
    FixedEpsilonEnsemble,
    MinDistanceEnsemble,
)


[docs] def test_min_distance_ensemble(model, data_loader, adv_loaders) -> None: ensemble = MinDistanceEnsemble("l2") result_loader = ensemble(model, data_loader, adv_loaders) for batch in result_loader: assert batch[0].shape == ( 10, 3, 32, 32, ) # Expected shape of adversarial examples assert batch[1].shape == (10,) # Expected shape of original labels
[docs] def test_fixed_epsilon_ensemble(model, data_loader, adv_loaders) -> None: loss_fn = torch.nn.CrossEntropyLoss() ensemble = FixedEpsilonEnsemble(loss_fn) result_loader = ensemble(model, data_loader, adv_loaders) for batch in result_loader: assert batch[0].shape == ( 10, 3, 32, 32, ) # Expected shape of adversarial examples assert batch[1].shape == (10,) # Expected shape of original labels