Skip to content

Commit dc397be

Browse files
authored
Merge pull request #612 from Trusted-AI/development_issue_609
Update internal imports
2 parents 010cd47 + bf4106b commit dc397be

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+106
-62
lines changed

art/attacks/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,8 @@
33
"""
44
from art.attacks.attack import Attack, EvasionAttack, PoisoningAttack, PoisoningAttackBlackBox, PoisoningAttackWhiteBox
55
from art.attacks.attack import PoisoningAttackTransformer, ExtractionAttack, InferenceAttack, AttributeInferenceAttack
6+
7+
from art.attacks import evasion
8+
from art.attacks import extraction
9+
from art.attacks import inference
10+
from art.attacks import poisoning

art/attacks/evasion/auto_projected_gradient_descent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from tqdm.auto import trange
2929

3030
from art.config import ART_NUMPY_DTYPE
31-
from art.attacks import EvasionAttack
31+
from art.attacks.attack import EvasionAttack
3232
from art.estimators.estimator import BaseEstimator, LossGradientsMixin
3333
from art.estimators.classification.classifier import ClassifierMixin
3434
from art.utils import check_and_transform_label_format, projection, random_sphere, is_probability, get_labels_np_array

art/attacks/inference/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
"""
22
Module providing inference attacks.
33
"""
4+
from art.attacks.inference import attribute_inference
5+
from art.attacks.inference import membership_inference
6+
from art.attacks.inference import model_inversion

art/defences/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
"""
22
Module implementing multiple types of defences against adversarial attacks.
33
"""
4+
from art.defences import detector
5+
from art.defences import postprocessor
6+
from art.defences import preprocessor
7+
from art.defences import trainer
8+
from art.defences import transformer

art/defences/detector/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
"""
2+
Module implementing detector-based defences against adversarial attacks.
3+
"""
4+
from art.defences.detector import evasion
5+
from art.defences.detector import poisoning
Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
"""
2-
Module providing methods for detecting adversarial samples under a common interface.
2+
Module implementing detector-based defences against evasion attacks.
33
"""
4-
from art.defences.detector.evasion.detector import (
5-
BinaryInputDetector,
6-
BinaryActivationDetector,
7-
)
8-
from art.defences.detector.evasion.subsetscanning.scanningops import ScanningOps
9-
from art.defences.detector.evasion.subsetscanning.scanner import Scanner
10-
from art.defences.detector.evasion.subsetscanning.detector import SubsetScanningDetector
4+
from art.defences.detector.evasion import subsetscanning
5+
6+
from art.defences.detector.evasion.detector import BinaryInputDetector, BinaryActivationDetector

art/defences/detector/evasion/detector.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,25 @@
2626

2727
import numpy as np
2828

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
3031
from art.utils import deprecated
3132

3233
if TYPE_CHECKING:
3334
from art.utils import CLIP_VALUES_TYPE
3435
from art.data_generators import DataGenerator
36+
from art.estimators.classification.classifier import ClassifierNeuralNetwork
3537

3638
logger = logging.getLogger(__name__)
3739

3840

39-
class BinaryInputDetector(ClassifierNeuralNetwork):
41+
class BinaryInputDetector(ClassGradientsMixin, ClassifierMixin, LossGradientsMixin, NeuralNetworkMixin, BaseEstimator):
4042
"""
4143
Binary detector of adversarial samples coming from evasion attacks. The detector uses an architecture provided by
4244
the user and trains it on data labeled as clean (label 0) or adversarial (label 1).
4345
"""
4446

45-
def __init__(self, detector: ClassifierNeuralNetwork) -> None:
47+
def __init__(self, detector: "ClassifierNeuralNetwork") -> None:
4648
"""
4749
Create a `BinaryInputDetector` instance which performs binary classification on input data.
4850
@@ -155,14 +157,16 @@ def save(self, filename: str, path: Optional[str] = None) -> None:
155157
self.detector.save(filename, path)
156158

157159

158-
class BinaryActivationDetector(ClassifierNeuralNetwork):
160+
class BinaryActivationDetector(
161+
ClassGradientsMixin, ClassifierMixin, LossGradientsMixin, NeuralNetworkMixin, BaseEstimator
162+
):
159163
"""
160164
Binary detector of adversarial samples coming from evasion attacks. The detector uses an architecture provided by
161165
the user and is trained on the values of the activations of a classifier at a given layer.
162166
"""
163167

164168
def __init__(
165-
self, classifier: ClassifierNeuralNetwork, detector: ClassifierNeuralNetwork, layer: Union[int, str],
169+
self, classifier: "ClassifierNeuralNetwork", detector: "ClassifierNeuralNetwork", layer: Union[int, str],
166170
) -> None: # lgtm [py/similar-function]
167171
"""
168172
Create a `BinaryActivationDetector` instance which performs binary classification on activation information.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
"""
22
This module implements the fast generalized subset scan based detector.
33
"""
4+
from art.defences.detector.evasion.subsetscanning.scanningops import ScanningOps
5+
from art.defences.detector.evasion.subsetscanning.scanner import Scanner
6+
from art.defences.detector.evasion.subsetscanning.detector import SubsetScanningDetector

art/defences/detector/poison/__init__.py

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
"""
2+
Module implementing detector-based defences against poisoning attacks.
3+
"""
4+
from art.defences.detector.poisoning.poison_filtering_defence import PoisonFilteringDefence
5+
from art.defences.detector.poisoning.ground_truth_evaluator import GroundTruthEvaluator
6+
from art.defences.detector.poisoning.activation_defence import ActivationDefence
7+
from art.defences.detector.poisoning.clustering_analyzer import ClusteringAnalyzer
8+
from art.defences.detector.poisoning.provenance_defense import ProvenanceDefense
9+
from art.defences.detector.poisoning.roni import RONIDefense
10+
from art.defences.detector.poisoning.spectral_signature_defense import SpectralSignatureDefense

0 commit comments

Comments
 (0)