コード例 #1
0
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)
コード例 #2
0
    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)
コード例 #3
0
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,
コード例 #4
0
    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)

コード例 #5
0
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)
コード例 #6
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()