from copy import deepcopy if method == 'BayesWRM' or method=='Bayes': for net in model_list: for p in net.parameters(): p.requires_grad = False net.eval() else: for p in net.parameters(): p.requires_grad = False net.eval() for epsilon in epsilon_set: train_dataset, val_dataset = utils.get_dataset(params) loader_test = torch.utils.data.DataLoader(val_dataset, batch_size=256, shuffle=False) #test(net, loader_test) if method == 'BayesWRM' or method == 'Bayes': adversary = FGSMAttack(model_list, epsilon, is_train=False) advacc = attack_over_test_data(model_list, adversary, param, loader_test) else: adversary = FGSMAttack(net, epsilon, is_train=False, advtraining=method) advacc = attack_over_test_data(net, adversary, param, loader_test) print('method',method, 'adv accuracy', advacc) advacc_set.append(advacc)
epsilon_set = np.linspace(0, 0.3, 11) advacc_set = [] from copy import deepcopy if method == 'BayesWRM' or method == 'Bayes': for net in model_list: for p in net.parameters(): p.requires_grad = False net.eval() else: for p in net.parameters(): p.requires_grad = False net.eval() train_dataset, val_dataset = utils.get_dataset(params, fixedindex=fixedindex) loader_test = torch.utils.data.DataLoader(val_dataset, batch_size=1, shuffle=False) #test(net, loader_test) if method == 'BayesWRM' or method == 'Bayes': adversary = FGSMAttack(model_list, epsilon, is_train=False, advtraining=method, inputdist=inputdist, noiseratio=noiseratio, storeadv=True) #adversary = CWAttack(model_list, steps=k)