|
26 | 26 |
|
27 | 27 | import numpy as np |
28 | 28 |
|
29 | | -from art.estimators.classification.classifier import ClassifierNeuralNetwork |
| 29 | +from art.estimators.estimator import BaseEstimator, NeuralNetworkMixin, LossGradientsMixin |
| 30 | +from art.estimators.classification.classifier import ClassifierMixin, ClassGradientsMixin |
30 | 31 | from art.utils import deprecated |
31 | 32 |
|
32 | 33 | if TYPE_CHECKING: |
33 | 34 | from art.utils import CLIP_VALUES_TYPE |
34 | 35 | from art.data_generators import DataGenerator |
| 36 | + from art.estimators.classification.classifier import ClassifierNeuralNetwork |
35 | 37 |
|
36 | 38 | logger = logging.getLogger(__name__) |
37 | 39 |
|
38 | 40 |
|
39 | | -class BinaryInputDetector(ClassifierNeuralNetwork): |
| 41 | +class BinaryInputDetector(ClassGradientsMixin, ClassifierMixin, LossGradientsMixin, NeuralNetworkMixin, BaseEstimator): |
40 | 42 | """ |
41 | 43 | Binary detector of adversarial samples coming from evasion attacks. The detector uses an architecture provided by |
42 | 44 | the user and trains it on data labeled as clean (label 0) or adversarial (label 1). |
43 | 45 | """ |
44 | 46 |
|
45 | | - def __init__(self, detector: ClassifierNeuralNetwork) -> None: |
| 47 | + def __init__(self, detector: "ClassifierNeuralNetwork") -> None: |
46 | 48 | """ |
47 | 49 | Create a `BinaryInputDetector` instance which performs binary classification on input data. |
48 | 50 |
|
@@ -155,14 +157,16 @@ def save(self, filename: str, path: Optional[str] = None) -> None: |
155 | 157 | self.detector.save(filename, path) |
156 | 158 |
|
157 | 159 |
|
158 | | -class BinaryActivationDetector(ClassifierNeuralNetwork): |
| 160 | +class BinaryActivationDetector( |
| 161 | + ClassGradientsMixin, ClassifierMixin, LossGradientsMixin, NeuralNetworkMixin, BaseEstimator |
| 162 | +): |
159 | 163 | """ |
160 | 164 | Binary detector of adversarial samples coming from evasion attacks. The detector uses an architecture provided by |
161 | 165 | the user and is trained on the values of the activations of a classifier at a given layer. |
162 | 166 | """ |
163 | 167 |
|
164 | 168 | def __init__( |
165 | | - self, classifier: ClassifierNeuralNetwork, detector: ClassifierNeuralNetwork, layer: Union[int, str], |
| 169 | + self, classifier: "ClassifierNeuralNetwork", detector: "ClassifierNeuralNetwork", layer: Union[int, str], |
166 | 170 | ) -> None: # lgtm [py/similar-function] |
167 | 171 | """ |
168 | 172 | Create a `BinaryActivationDetector` instance which performs binary classification on activation information. |
|
0 commit comments