import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.metrics import roc_curve,auc from scipy import interp from itertools import cycle from utilities import read_images_steering_directions, generate_data, SDC_data IMAGE_FILE = 'straight_right_left.csv' IMAGE_FOLDER = '/home/alesia/Documents/sdc/' data = SDC_data(IMAGE_FILE, IMAGE_FOLDER) train_labels = np.asarray(data.attack_labels) NUM_ATTACKS = 600 NUM_CLASSES = 3 NUM_INPUTS = 300 LABELS_FILE = 'results/res_attack_labels_epoch.txt' PROBAS_FILE = 'results/res_attack_probas_epoch.txt' DISTANCES_FILE = 'results/res_attack_epoch.txt' shape = (NUM_ATTACKS, NUM_CLASSES)
def fn(correct, predicted): return tf.nn.softmax_cross_entropy_with_logits(labels=correct, logits=predicted) sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) model.compile(loss=fn, optimizer=sgd, metrics=['accuracy']) model.fit(data.attack_data, data.attack_labels, batch_size=batch_size, validation_split=0.1, nb_epoch=num_epochs, shuffle=True) if file_name != None: model.save(file_name) return model if not os.path.isdir('models'): os.makedirs('models') IMAGE_FILE = 'straight_right_left.csv' IMAGE_FOLDER = '/home/alesia/Documents/sdc/' train(SDC_data(IMAGE_FILE, IMAGE_FOLDER), "models/sdc_nvidia", [24, 36, 48, 64, 64, 1164, 100, 50, 10, 3], num_epochs=50)
from utilities import SDC_data, generate_data, softmax from attack import L2ClassificationAttack from model import SDC_model_epoch IMAGE_FILE = 'straight_right_left.csv' IMAGE_FOLDER = '/home/alesia/Documents/sdc/' MODEL_FILE = 'models/sdc_epoch' RESULTS_FILE = 'results/res_attack_epoch.txt' RESULTS_SUCCESS_FILE = 'results/res_attack_success_epoch.txt' RESULTS_PROBAS_FILE = 'results/res_attack_probas_epoch.txt' RESULTS_LABELS_FILE = 'results/res_attack_labels_epoch.txt' NUM_ATTACKS = 300 with tf.Session() as sess: data, model = SDC_data(IMAGE_FILE, IMAGE_FOLDER), SDC_model_epoch(MODEL_FILE, sess) distortions = [] success = 0 results = open(RESULTS_FILE, 'w') results_success = open(RESULTS_SUCCESS_FILE, 'w') results_probas = open(RESULTS_PROBAS_FILE, 'w') results_labels_probas = open(RESULTS_LABELS_FILE, 'w') tmp = 0 for k in range(NUM_ATTACKS): attack = L2ClassificationAttack(sess, model,
def fn(correct, predicted): return tf.nn.softmax_cross_entropy_with_logits(labels = correct, logits = predicted) sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) model.compile(loss=fn, optimizer=sgd, metrics=['accuracy']) model.fit(data.attack_data, data.attack_labels, batch_size=batch_size, validation_split = 0.1, nb_epoch=num_epochs, shuffle=True) if file_name != None: model.save(file_name) return model if not os.path.isdir('models'): os.makedirs('models') IMAGE_FILE = 'straight_right_left.csv' IMAGE_FOLDER = '/home/alesia/Documents/sdc/' train(SDC_data(IMAGE_FILE, IMAGE_FOLDER), "models/sdc_epoch", [32, 64, 128, 1024, 3], num_epochs = 50)
from utilities import SDC_data, generate_data from attack import L2ClassificationAttack from model import SDC_model_nvidia IMAGE_FILE = 'straight_right_left.csv' IMAGE_FOLDER = '/home/alesia/Documents/sdc/' MODEL_FILE = 'models/sdc_nvidia' RESULTS_FILE = 'results/res_attack_nvidia.txt' RESULTS_SUCCESS_FILE = 'results/res_attack_success_nvidia.txt' RESULTS_PROBAS_FILE = 'results/res_attack_probas_nvidia.txt' RESULTS_LABELS_FILE = 'results/res_attack_labels_nvidia.txt' NUM_ATTACKS = 300 with tf.Session() as sess: data, model = SDC_data(IMAGE_FILE, IMAGE_FOLDER), SDC_model_nvidia(MODEL_FILE, sess) distortions = [] success = 0 results = open(RESULTS_FILE, 'w') results_success = open(RESULTS_SUCCESS_FILE, 'w') results_probas = open(RESULTS_PROBAS_FILE, 'w') results_labels = open(RESULTS_LABELS_FILE, 'w') for k in range(NUM_ATTACKS): attack = L2ClassificationAttack(sess, model, batch_size=2, max_iterations=1000, confidence=0)
from keras.layers import Conv2D, MaxPooling2D, BatchNormalization from keras.utils import np_utils from keras.models import load_model 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()