pygip.models.attack.DataFreeMEA

Classes

DFEAAttack(dataset, attack_x_ratio, ...[, ...])

DFEATypeI(dataset, attack_x_ratio, ...[, ...])

Type I: Uses victim outputs + gradients for surrogate training.

DFEATypeII(dataset, attack_x_ratio, ...[, ...])

Type II: Uses victim outputs only (hard labels).

DFEATypeIII(dataset, attack_x_ratio, ...[, ...])

Type III: Two surrogates with victim supervision + consistency.

GraphGenerator(node_number, feature_number, ...)

class pygip.models.attack.DataFreeMEA.DFEAAttack(dataset, attack_x_ratio, attack_a_ratio, model_path=None)[source]

Bases: BaseAttack

_abc_impl = <_abc_data object>
_evaluate_on_real_test(surrogate, metric, metric_comp)[source]

Evaluate the surrogate on the real test set and update metrics

_forward(model, graph, features)[source]
_load_model(model_path)[source]

Load a pre-trained model.

_train_target_model()[source]

Train the target model if not provided.

abstract attack()[source]

Execute the attack.

supported_api_types = {'dgl'}
class pygip.models.attack.DataFreeMEA.DFEATypeI(dataset, attack_x_ratio, attack_a_ratio, model_path=None)[source]

Bases: DFEAAttack

Type I: Uses victim outputs + gradients for surrogate training.

_abc_impl = <_abc_data object>
attack()[source]

Execute the attack.

class pygip.models.attack.DataFreeMEA.DFEATypeII(dataset, attack_x_ratio, attack_a_ratio, model_path=None)[source]

Bases: DFEAAttack

Type II: Uses victim outputs only (hard labels).

_abc_impl = <_abc_data object>
attack()[source]

Execute the attack.

class pygip.models.attack.DataFreeMEA.DFEATypeIII(dataset, attack_x_ratio, attack_a_ratio, model_path=None)[source]

Bases: DFEAAttack

Type III: Two surrogates with victim supervision + consistency.

_abc_impl = <_abc_data object>
attack()[source]

Execute the attack.

class pygip.models.attack.DataFreeMEA.GraphGenerator(node_number, feature_number, label_number)[source]

Bases: object

generate()[source]