in attacks/privacy_attacks.py [0:0]
def get_confidences(params):
"""
return uncalibrated confidences.
"""
known_masks, hidden_masks = {}, {}
hidden_masks['public'], hidden_masks['private']={},{}
known_masks['public'] = torch.load(params.mask_path + "public.pth")
known_masks['private'] = torch.load( params.mask_path + "private.pth")
hidden_masks['private']['train']=torch.load( params.mask_path + "hidden/train.pth")
hidden_masks['private']['heldout'] = torch.load( params.mask_path + "hidden/heldout.pth")
hidden_masks['public']['train']=torch.load( params.mask_path + "hidden/public_train.pth")
hidden_masks['public']['heldout'] = torch.load( params.mask_path + "hidden/public_heldout.pth")
device = torch.device('cpu')
#get the final model parameters
private_model=build_model(params)
private_model_path = os.path.join(params.model_path, "checkpoint.pth")
state_dict_private = torch.load(private_model_path,map_location=device)
private_model.load_state_dict(state_dict_private['model'])
private_model=private_model.cpu()
#get the appropriate ids to dot product
private_train_ids=(hidden_masks['private']['train']==True).nonzero().flatten().numpy()
private_heldout_ids=(hidden_masks['private']['heldout']==True).nonzero().flatten().numpy()
#load the dataset
dataset = get_dataset(params)
if params.aug:
train_confidences=np.zeros(len(hidden_masks['private']['train']))
heldout_confidences=np.zeros(len(hidden_masks['private']['train']))
train_summed_confs=[[0] for i in np.arange(len(hidden_masks['private']['train']))]
heldout_summed_confs=[[0] for i in np.arange(len(hidden_masks['private']['train']))]
for j in np.arange(10):
print('Aug', j)
train_images=torch.stack([dataset[i][0] for i in private_train_ids])
train_images=train_images.cpu()
heldout_images=torch.stack([dataset[i][0] for i in private_heldout_ids])
heldout_images=heldout_images.cpu()
log_softmax = torch.nn.LogSoftmax(dim=1)
train_output=private_model(train_images)
heldout_output=private_model(heldout_images)
log_train_output=log_softmax(train_output)
log_heldout_output=log_softmax(heldout_output)
train_confs,_=torch.max(log_train_output,dim=1)
heldout_confs,_=torch.max(log_heldout_output,dim=1)
train_confs=train_confs.cpu().detach().numpy()
heldout_confs=heldout_confs.cpu().detach().numpy()
for i,id in enumerate(private_train_ids):
train_summed_confs[id].append(train_confs[i])
for i,id in enumerate(private_heldout_ids):
heldout_summed_confs[id].append(heldout_confs[i])
for id in private_train_ids:
if params.aug_style=='mean':
train_confidences[id]=np.mean(train_summed_confs[id][1:])
elif params.aug_style=='max':
train_confidences[id]=np.max(train_summed_confs[id][1:])
elif params.aug_style=='median':
train_confidences[id]=np.median(train_summed_confs[id][1:])
elif params.aug_style=='std':
train_confidences[id]=np.std(train_summed_confs[id][1:])
for id in private_heldout_ids:
if params.aug_style=='mean':
heldout_confidences[id]=np.mean(heldout_summed_confs[id][1:])
elif params.aug_style=='max':
heldout_confidences[id]=np.max(heldout_summed_confs[id][1:])
elif params.aug_style=='median':
heldout_confidences[id]=np.median(heldout_summed_confs[id][1:])
elif params.aug_style=='std':
heldout_confidences[id]=np.std(heldout_summed_confs[id][1:])
train_confidences=train_confidences[private_train_ids]
heldout_confidences=heldout_confidences[private_heldout_ids]
else:
train_confidences=[]
heldout_confidences=[]
train_images=torch.stack([dataset[i][0] for i in private_train_ids])
train_images=train_images.cpu()
heldout_images=torch.stack([dataset[i][0] for i in private_heldout_ids])
heldout_images=heldout_images.cpu()
log_softmax = torch.nn.LogSoftmax(dim=1)
train_output=private_model(train_images)
heldout_output=private_model(heldout_images)
log_train_output=log_softmax(train_output)
log_heldout_output=log_softmax(heldout_output)
train_confidences,_=torch.max(log_train_output,dim=1)
heldout_confidences,_=torch.max(log_heldout_output,dim=1)
train_confidences=train_confidences.cpu().detach().numpy()
heldout_confidences=heldout_confidences.cpu().detach().numpy()
return train_confidences,heldout_confidences