MCPcopy Create free account
hub / github.com/TrustAIResearch/MLHospital / AttackDataset

Class AttackDataset

mlh/attacks/attribute_inference/attacks.py:145–188  ·  view source on GitHub ↗

Generate attack dataset

Source from the content-addressed store, hash-verified

143
144
145class AttackDataset():
146 """
147 Generate attack dataset
148 """
149
150 def __init__(self, args, attack_type, target_model, target_train_dataloader, target_test_dataloader, layers, obfuscator):
151 self.args = args
152 self.attack_type = attack_type
153 self.target_model_parser = ModelParser(args, target_model)
154
155 self.target_train_info = self.target_model_parser.parse_info_whitebox(
156 target_train_dataloader, layers, obfuscator)
157 self.target_test_info = self.target_model_parser.parse_info_whitebox(
158 target_test_dataloader, layers, obfuscator)
159
160 # get attack dataset
161 self.attack_train_dataset, self.attack_test_dataset = self.generate_attack_dataset()
162
163 def parse_info(self, info):
164 original_labels = info["targets"]
165 aux_labels = info["aux_targets"]
166 data = info["embeddings"]
167
168 return data, aux_labels, original_labels
169
170 def generate_attack_dataset(self):
171 train_data, train_aux_labels, train_original_labels = self.parse_info(
172 self.target_train_info)
173 test_data, test_aux_labels, test_original_labels = self.parse_info(
174 self.target_test_info)
175
176 attack_train_dataset = torch.utils.data.TensorDataset(
177 torch.from_numpy(np.array(train_data, dtype='f')),
178 torch.from_numpy(np.array(train_aux_labels)).type(torch.long),
179 torch.from_numpy(np.array(train_original_labels)).type(torch.long),
180 )
181
182 attack_test_dataset = torch.utils.data.TensorDataset(
183 torch.from_numpy(np.array(test_data, dtype='f')),
184 torch.from_numpy(np.array(test_aux_labels)).type(torch.long),
185 torch.from_numpy(np.array(test_original_labels)).type(torch.long),
186 )
187
188 return attack_train_dataset, attack_test_dataset
189
190
191class AttributeInferenceAttack(abc.ABC):

Callers 1

mia_example.pyFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected