Target#

Store information about the target model and data.

class sacroml.attacks.target.Target(model: SklearnModel | PytorchModel | BaseEstimator | Module | None = None, model_path: str = '', model_module_path: str = '', model_name: str = '', model_params: dict | None = None, train_module_path: str = '', train_params: dict | None = None, batch_size: int | None = None, dataset_name: str = '', dataset_module_path: str = '', features: dict = <factory>, X_train: ndarray | None = None, y_train: ndarray | None = None, X_test: ndarray | None = None, y_test: ndarray | None = None, X_train_orig: ndarray | None = None, y_train_orig: ndarray | None = None, X_test_orig: ndarray | None = None, y_test_orig: ndarray | None = None, proba_train: ndarray | None = None, proba_test: ndarray | None = None, indices_train: Sequence[int] | None = None, indices_test: Sequence[int] | None = None, safemodel: list = <factory>)[source]#

Store information about the target model and data.

Attributes:
modelModelLike

Trained target model.

model_pathstr

Path to a saved model.

model_module_pathstr

Path to module containing model class.

model_namestr

Class name of model.

model_paramsdict or None

Hyperparameters for instantiating the model.

train_module_pathstr

Path to module containing training function.

train_paramsdict or None

Hyperparameters for training the model.

batch_sizeint or None

Batch size used to train the original target model. Threaded to PyTorch model (re)training and inference. Should match the original training batch size since it materially affects attack model fidelity (e.g. shadow models). When None, PyTorch defaults to 32.

dataset_namestr

The name of the dataset.

dataset_module_pathstr

Path to module containing dataset loading function.

featuresdict

Dictionary describing the dataset features.

X_trainnp.ndarray or None

The (processed) training inputs.

y_trainnp.ndarray or None

The (processed) training outputs.

X_testnp.ndarray or None

The (processed) testing inputs.

y_testnp.ndarray or None

The (processed) testing outputs.

X_train_orignp.ndarray or None

The original (unprocessed) training inputs.

y_train_orignp.ndarray or None

The original (unprocessed) training outputs.

X_test_orignp.ndarray or None

The original (unprocessed) testing inputs.

y_test_orignp.ndarray or None

The original (unprocessed) testing outputs.

proba_trainnp.ndarray or None

The model predicted training probabilities.

proba_testnp.ndarray or None

The model predicted testing probabilities.

indices_trainSequence[int] or None

Indices of training set samples.

indices_testSequence[int] or None

Indices of test set samples.

safemodellist

Results of safemodel disclosure checking.

Methods

add_feature(name, indices, encoding)

Add a feature description to the data dictionary.

add_safemodel_results(data)

Add safemodel disclosure checking results.

get_generalisation_error()

Calculate model generalisation error.

has_data()

Return whether the target has all processed data.

has_model()

Return whether the target has a loaded model.

has_probas()

Return whether the target has all probability data.

has_raw_data()

Return whether the target has all raw data.

load([path])

Load target from persistent storage.

load_array(arr_path, attr_name)

Load array from pickle or CSV file.

load_pytorch_dataset()

Wrap dataset for Pytorch models given a dataset Python script.

load_sklearn_dataset()

Wrap dataset for scikit-learn models given a dataset Python script.

save([path, ext])

Save target to persistent storage.

__init__(model: SklearnModel | PytorchModel | BaseEstimator | Module | None = None, model_path: str = '', model_module_path: str = '', model_name: str = '', model_params: dict | None = None, train_module_path: str = '', train_params: dict | None = None, batch_size: int | None = None, dataset_name: str = '', dataset_module_path: str = '', features: dict = <factory>, X_train: ndarray | None = None, y_train: ndarray | None = None, X_test: ndarray | None = None, y_test: ndarray | None = None, X_train_orig: ndarray | None = None, y_train_orig: ndarray | None = None, X_test_orig: ndarray | None = None, y_test_orig: ndarray | None = None, proba_train: ndarray | None = None, proba_test: ndarray | None = None, indices_train: Sequence[int] | None = None, indices_test: Sequence[int] | None = None, safemodel: list = <factory>) None#
add_feature(name: str, indices: list[int], encoding: str) None[source]#

Add a feature description to the data dictionary.

add_safemodel_results(data: list) None[source]#

Add safemodel disclosure checking results.

get_generalisation_error() float[source]#

Calculate model generalisation error.

has_data() bool[source]#

Return whether the target has all processed data.

has_model() bool[source]#

Return whether the target has a loaded model.

has_probas() bool[source]#

Return whether the target has all probability data.

has_raw_data() bool[source]#

Return whether the target has all raw data.

load(path: str = 'target') None[source]#

Load target from persistent storage.

load_array(arr_path: str, attr_name: str) None[source]#

Load array from pickle or CSV file.

load_pytorch_dataset() None[source]#

Wrap dataset for Pytorch models given a dataset Python script.

load_sklearn_dataset() None[source]#

Wrap dataset for scikit-learn models given a dataset Python script.

save(path: str = 'target', ext: str = 'pkl') None[source]#

Save target to persistent storage.

X_test: ndarray | None = None#
X_test_orig: ndarray | None = None#
X_train: ndarray | None = None#
X_train_orig: ndarray | None = None#
batch_size: int | None = None#
dataset_module_path: str = ''#
dataset_name: str = ''#
features: dict#
indices_test: Sequence[int] | None = None#
indices_train: Sequence[int] | None = None#
model: SklearnModel | PytorchModel | BaseEstimator | Module | None = None#
model_module_path: str = ''#
model_name: str = ''#
model_params: dict | None = None#
model_path: str = ''#
property n_features: int#

Number of features.

proba_test: ndarray | None = None#
proba_train: ndarray | None = None#
safemodel: list#
train_module_path: str = ''#
train_params: dict | None = None#
y_test: ndarray | None = None#
y_test_orig: ndarray | None = None#
y_train: ndarray | None = None#
y_train_orig: ndarray | None = None#