fdd-defense
46 строк · 1.1 Кб
1from abc import ABC, abstractmethod2import numpy as np3
4class BaseAttacker(ABC):5"""A base class of the attack.6
7Attributes
8----------
9model: object
10FDD model to be attacked
11eps: float
12data class with dataloaders
13
14Methods
15-------
16attack():
17Attack simulation
18"""
19
20def __init__(self, model: object, eps: float):21"""Constructs all the necessary attributes for the attack object.22
23Parameters
24----------
25model : object
26FDD model to be attacked
27eps : float
28epsilon is the maximum absolute shift of the original data
29"""
30assert eps > 031self.eps = eps32self.model = model33
34@abstractmethod35def attack(self, ts: np.ndarray, label: np.ndarray) -> np.ndarray:36"""Attacks the data.37
38Parameters
39----------
40ts: np.ndarray
41attacked sensor data of the shape (batch size,
42sequence length, number of sensors)
43label: np.ndarray
44label of sensor data of the shape (batch size, )
45"""
46pass47