pygip.models.defense.atom package¶
Submodules¶
pygip.models.defense.atom.ATOM module¶
- class pygip.models.defense.atom.ATOM.ATOM(dataset, attack_node_fraction=0)[source]¶
Bases:
BaseDefense- _abc_impl = <_abc_data object>¶
- _convert_to_networkx()[source]¶
Convert graph data to NetworkX format, compatible with different graph data structures
- _create_default_masks()[source]¶
Create default train/test masks for datasets without predefined masks
- static _evaluate_downstream_task(model, data, test_mask, labels)[source]¶
Evaluate model performance on downstream task
- _load_data_and_model(batch_size=16, seed=0, lamb=0)[source]¶
Load data and model following BackdoorWM format Use data from self.dataset directly instead of reloading
- supported_api_types = {'pyg'}¶
- supported_datasets = {'CS', 'CiteSeer', 'Computers', 'Cora', 'Photo', 'Physics', 'PubMed'}¶
- class pygip.models.defense.atom.ATOM.PolicyNetwork(*args: Any, **kwargs: Any)[source]¶
Bases:
Module
- class pygip.models.defense.atom.ATOM.SequencesDataset(*args: Any, **kwargs: Any)[source]¶
Bases:
Dataset
- class pygip.models.defense.atom.ATOM.StateTransformMLP(*args: Any, **kwargs: Any)[source]¶
Bases:
Module
- pygip.models.defense.atom.ATOM.average_pooling_with_neighbors_batch(model, data, node_indices)[source]¶
- pygip.models.defense.atom.ATOM.build_loaders(csv_path='attack_CiteSeer.csv', batch_size=16, drop_last=True, seed=42)[source]¶
- pygip.models.defense.atom.ATOM.compute_embedding_batch(target_model, data, k_core_values_graph, max_k_core, node_indices, lamb=1.0)[source]¶
- pygip.models.defense.atom.ATOM.compute_returns_and_advantages(memory, gamma=0.99, lam=0.95)[source]¶
- pygip.models.defense.atom.ATOM.custom_reward_function(predicted, label, predicted_distribution=None)[source]¶
- pygip.models.defense.atom.ATOM.load_data_and_model(csv_path, batch_size, seed, data_path, lamb)[source]¶
- pygip.models.defense.atom.ATOM.precompute_all_node_embeddings(target_model, data, k_core_values_graph, max_k_core, lamb=1.0)[source]¶