_, _, X_test, Y_test = get_data(dataset) num_samples = np.shape(X_test)[0] num_rand_samples = 1328 random_samples = np.random.randint(0, num_samples, num_rand_samples) new_X_test = np.zeros((num_rand_samples, 1, 28, 28)) for i, sample_no in enumerate(random_samples): new_X_test[i, 0, :, :] = (X_test[sample_no, :, :, 0]) new_Y_test = Y_test[random_samples, :] f = open(os.path.join(args.log_dir, 'Random_Test_%s_.p' % (dataset)), 'w') pickle.dump({"adv_input": new_X_test, "adv_labels": new_Y_test}, f) f.close() if (args.attack == 'cw-l2' or args.attack == 'all'): #No softmax for Carlini attack pytorch_network = Net() pytorch_network.load_state_dict(torch.load(args_ckpt)) pytorch_network.eval() model = Model(torch_model=pytorch_network, softmax=False) keras_network = model.model transfer.pytorch_to_keras(pytorch_network, model.model) pytorch_network.eval() model = model.model batch_size = 16 craft_one_type(sess, model, new_X_test, new_Y_test, dataset, 'cw-l2', batch_size,
list_noisy_names.append('noisy_' + advs) attack_file = os.path.join(args.adv_ex_dir, 'Noisy_%s_%s.p' % (dataset, advs)) adv_loader = torch.utils.data.DataLoader(custom_datasets.Adv( filename=attack_file, transp=True), batch_size=args.batch_size, shuffle=False, **kwargs) list_noisy_loader.append(adv_loader) from model import CW_Net as Net #from small_model import Very_Small_Net as Net print("Eval using model", Net) model = Net() print("Loading ckpt", args.ckpt) model.load_state_dict(torch.load(args.ckpt)) if args.cuda: model.cuda() model.eval() print("Args:", args) fixed_dxs = pickle.load( open(os.path.join(args.fingerprint_dir, "fp_inputs_dx.pkl"), "rb")) fixed_dys = pickle.load( open(os.path.join(args.fingerprint_dir, "fp_outputs.pkl"), "rb")) fp = Fingerprints()
fp_target[i, j, i] = 0.7 pickle.dump(fp_target, open(os.path.join(args.log_dir, "fp_outputs.pkl"), "wb")) fp_target = util.np2var(fp_target, args.cuda) fp = Fingerprints() fp.dxs = fp_dx fp.dys = fp_target #from model import Net from model import CW_Net as Net #from small_model import Very_Small_Net as Net model = Net() if args.cuda: model.cuda() optimizer = optim.Adam(model.parameters(), lr=args.lr) print("Args:", args) for epoch in range(1, args.epochs + 1): if (epoch == 1): fp_train.test(epoch, args, model, test_loader, fp.dxs, fp.dys) fp_train.train(epoch, args, model, optimizer, train_loader, fp.dxs, fp.dys) fp_train.test(epoch, args, model, test_loader, fp.dxs, fp.dys) path = os.path.join(args.log_dir, "ckpt", "state_dict-ep_{}.pth".format(epoch))