Пример #1
0
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))
Пример #2
0
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()
Пример #3
0
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]: