pygip.models.attack.DataFreeMEA

Classes

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

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

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

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

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

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

Type III: Two surrogates with victim supervision + consistency.

GraphGenerator(node_number, feature_number, ...)

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

Bases: BaseAttack

_abc_impl = <_abc_data object>
_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.

evaluate(surrogate)[source]
supported_api_types = {'dgl'}
class pygip.models.attack.DataFreeMEA.DFEATypeI(dataset, attack_node_fraction, 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_node_fraction, 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_node_fraction, 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]