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)
예제 #2
0
    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)