Spaces:
Build error
Build error
#!/usr/bin/env python3 | |
from typing import Callable | |
class Perturbation: | |
r""" | |
All perturbation and attack algorithms extend this class. It enforces | |
its child classes to extend and override core `perturb` method. | |
""" | |
perturb: Callable | |
r""" | |
This method computes and returns the perturbed input for each input tensor. | |
Deriving classes are responsible for implementing its logic accordingly. | |
Specific adversarial attack algorithms that extend this class take relevant | |
arguments. | |
Args: | |
inputs (tensor or tuple of tensors): Input for which adversarial attack | |
is computed. It can be provided as a single tensor or | |
a tuple of multiple tensors. If multiple input tensors | |
are provided, the batch sizes must be aligned accross all | |
tensors. | |
Returns: | |
- **perturbed inputs** (*tensor* or tuple of *tensors*): | |
Perturbed input for each | |
input tensor. The perturbed inputs have the same shape and | |
dimensionality as the inputs. | |
If a single tensor is provided as inputs, a single tensor | |
is returned. If a tuple is provided for inputs, a tuple of | |
corresponding sized tensors is returned. | |
""" | |
def __call__(self, *args, **kwargs): | |
return self.perturb(*args, **kwargs) | |