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(
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)
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.,
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):