import matplotlib.pyplot as plt from utilities import SDC_data, generate_data from model import SDC_model_epoch from attack import L2RegressionAttack IMAGE_FILE = 'test_image.csv' IMAGE_FOLDER = '/home/alesia/Documents/sdc/' with tf.Session() as sess: data, model = SDC_data(IMAGE_FILE, IMAGE_FOLDER), SDC_model_epoch("models/sdc", sess) attack = L2RegressionAttack(sess, model, batch_size=1, max_iterations=1000, confidence=0) inputs, targets = generate_data(data, samples=1, targeted=True, start=0) adv = attack.attack(inputs, targets) for i in range(len(adv)): inp = model.model.predict(inputs[i:i+1]) print("Valid :",inp) adver = model.model.predict(adv[i:i+1]) print("Classification:", adver) print() mse = (targets[i] - adver) * (targets[i] - adver) mse_init = (targets[i] - inp) * (targets[i] - inp) print('MSE', (targets[i] - adver) * (targets[i] - adver))
train_labels_600 = np.zeros(shape) for i in range(0, NUM_ATTACKS, 2): train_labels_600[i] = train_labels[int(i/2)] for i in range(1, NUM_ATTACKS, 2): train_labels_600[i] = train_labels[int(np.floor(i/2))] predicted_probabilities_array = np.zeros(shape) for k in range (NUM_INPUTS): inputs, targets = generate_data(data, samples = 1, targeted=True, start=k, inception=False) predicted_probabilities_array = np.zeros(shape) probabilities_attack_array = np.zeros(shape) probabilities_array_071 = np.zeros(shape) probabilities_array_072 = np.zeros(shape) probabilities_array_075 = np.zeros(shape) #get prediction probas with open(LABELS_FILE, 'r') as f: predictions = f.readlines() #get resulting distances with open(DISTANCES_FILE, 'r') as f: distances = f.read()
from utilities import generate_data from seq2seq import Seq2seq seq2seq = Seq2seq(lr=0.03, init_range=0.5) epochs = 80 train_length = 1000 test_length = 100 # generating data max_array_length = 2 input_train, output_train = generate_data(train_length, max_array_length) input_test, output_test = generate_data(test_length, max_array_length) # model training for epoch in range(epochs): cost = 0 for j in range(len(input_train)): cost += seq2seq.train(input_train[j], output_train[j]) if epoch % 5 == 0: print(f'Epoch: {epoch}') print(f'loss: {cost}') print('-' * 25) # model evaluation correct_test = 0 print('\ntest results:') for l in range(test_length): prediction = seq2seq.predict(input_test[l]) print(input_test[l], end=' ') if prediction == output_test[l]: