コード例 #1
0
from cnn_gtsrb.dataset.gtsrb import GtsrbProvider
from cnn_gtsrb.cnn.model import CNNModel
from cnn_gtsrb.dataset.canvas import Canvas

import tensorflow as tf
from cleverhans.attacks import FastGradientMethod
from cnn_gtsrb.attacks.crafting import generate_adv_examples

logger = logging.getLogger(__file__)
logging.basicConfig(level=logging.DEBUG)

SAVE_DIR = os.path.join('tmp', 'gtsrb_adv_fgsm')
if not os.path.isdir(SAVE_DIR):
    os.makedirs(SAVE_DIR)

gtsrb = GtsrbProvider(ignore_small=True)
# gtsrb.dump_images()

# Get data for each class in MNIST
data = gtsrb.raw_train_data()
np.random.shuffle(data)

grouped_data = []
for i in range(0, gtsrb.CLASSES, 2):
    grouped_data.append(data[(data[:, -1] == i), :])

images = np.concatenate(
    [np.expand_dims(group[0], 0) for group in grouped_data], axis=0)

# Make CNN Model
cnn = CNNModel(
コード例 #2
0
import logging
import tensorflow as tf
from cleverhans.attacks import FastGradientMethod
from cnn_gtsrb.dataset.gtsrb import GtsrbProvider
from cnn_gtsrb.cnn.model import CNNModel
#logging.basicConfig(level=logging.INFO)

tf.logging.set_verbosity(tf.logging.INFO)

fgsm_params = {'eps': 0.5, 'clip_min': 0., 'clip_max': 1.}

gtsrb = GtsrbProvider()
# gtsrb.dump_images()

cnn = CNNModel(
    image_size=gtsrb.IMAGE_SIZE,
    classes=gtsrb.CLASSES,
    model_name='gtsrb-64x64',
    model_dir='tmp/gtsrb_model-64x64',
    conv_layers=[32, 64, 128],
    fc_layer=512,
)

x, y = cnn.make_inputs()
probs = cnn.make_model(x)
cnn.start_session()

fgsm = FastGradientMethod(cnn, sess=cnn.sess)
adv_x = fgsm.generate(x, **fgsm_params)
probs = cnn.make_model(adv_x)
コード例 #3
0
import os
import numpy as np
import tensorflow as tf
from cnn_gtsrb.dataset.gtsrb import GtsrbProvider
from cnn_gtsrb.cnn.model import CNNModel

from cnn_gtsrb.attacks.crafting import BatchJSMACrafting

DIR_NAME = os.path.join('tmp', 'batch_adv')
if not os.path.isdir(DIR_NAME):
    os.makedirs(DIR_NAME)

logging.basicConfig(level=logging.INFO)
tf.logging.set_verbosity(tf.logging.INFO)

gtsrb = GtsrbProvider(ignore_small=True)

# Make CNN Model
cnn = CNNModel(
    image_size=gtsrb.IMAGE_SIZE,
    classes=gtsrb.CLASSES,
    model_name='gtsrb-32x32',
    model_dir='tmp/gtsrb_model-32x32',
    conv_layers=[32, 64, 128],
    fc_layer=512,
)

jsma_params = {
    'theta': 1.,
    'gamma': 0.1,
    'clip_min': 0.,
コード例 #4
0
import logging
import tensorflow as tf
from cnn_gtsrb.dataset.gtsrb import GtsrbProvider
from cnn_gtsrb.cnn.model import CNNModel
#logging.basicConfig(level=logging.INFO)

tf.logging.set_verbosity(tf.logging.INFO)

gtsrb = GtsrbProvider()
# gtsrb.dump_images()

cnn = CNNModel(
    image_size=gtsrb.IMAGE_SIZE,
    classes=gtsrb.CLASSES,
    model_name='gtsrb-32x32',
    model_dir='tmp/gtsrb_model-32x32',
    conv_layers=[32, 64, 128],
    fc_layer=512,
)

x, y = cnn.make_inputs()
probs = cnn.make_model(x)

cnn.start_session()
cnn.train(probs, x, y, 20000, gtsrb)
# cnn.test(gtsrb)
cnn.end_session()

#cnn.test(2000, gtsrb)

# for i in range(100):