def __init__(self): super().__init__() self.dataset = FashionMnistProvider() self.cnn = CNNModel( image_size=self.dataset.IMAGE_SIZE, classes=self.dataset.CLASSES, channels=self.dataset.CHANNELS, model_name=self.MODEL_NAME, model_dir='tmp/model-{}'.format(self.MODEL_NAME), conv_layers=[32, 64], fc_layers=[1024], )
def __init__(self): super().__init__() self.dataset = Cifar10Provider() self.cnn = CNNModel( image_size=self.dataset.IMAGE_SIZE, classes=self.dataset.CLASSES, channels=self.dataset.CHANNELS, kernel_size=[3, 3], model_name=self.MODEL_NAME, model_dir='tmp/model-{}'.format(self.MODEL_NAME), conv_layers=[48, 96, 192], fc_layers=[512, 256], )
import numpy as np import matplotlib.pyplot as plt import tensorflow as tf from cnn_gtsrb.cnn.model import CNNModel data = np.load('tmp/adv_mnist-28x28/fast-jsma_mnist-0.npy') cnn = CNNModel( image_size=28, classes=10, channels=1, model_name='mnist-28x28', model_dir='tmp/model-mnist-28x28', conv_layers=[32, 64], fc_layers=[1024], ) x, _ = cnn.make_inputs() probs = cnn.make_model(x) cnn.start_session() cnn.init_session_and_restore() orig_correct_count = 0 success_count = 0 actual_success_count = 0 actual_label_count = 0 sample = data[0]
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) mnist = MnistProvider() # Make CNN Model cnn = CNNModel( image_size=mnist.IMAGE_SIZE, classes=mnist.CLASSES, model_name='mnist-28x28.1', model_dir='tmp/mnist_model-28x28.1', conv_layers=[32, 64], fc_layer=1024, ) jsma_params = { 'theta': 1., 'gamma': 0.1, 'clip_min': 0., 'clip_max': 1., 'y_target': None } test_data = mnist.raw_test_data() test_data = test_data[:5000]
# 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( 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.init_session_and_restore() fgsm = FastGradientMethod(cnn, sess=cnn.sess) success_matrix = [] for eps in np.concatenate((np.arange(0.02, 0.1, 0.02), np.arange(0.1, 1,
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) cnn.adv_test(probs, x, y, adv_x, gtsrb.test_data(size=1000)) # cnn.test(gtsrb) cnn.end_session()
from cleverhans.attacks import FastGradientMethod from cnn_gtsrb.dataset.mnist import MnistProvider from cnn_gtsrb.cnn.model import CNNModel #logging.basicConfig(level=logging.INFO) tf.logging.set_verbosity(tf.logging.INFO) fgsm_params = {'eps': 0.2, 'clip_min': 0., 'clip_max': 1.} mnist = MnistProvider() # mnist.dump_images() cnn = CNNModel( image_size=mnist.IMAGE_SIZE, classes=mnist.CLASSES, model_name='mnist-28x28.1', model_dir='tmp/mnist_model-28x28.1', conv_layers=[32, 64], fc_layer=1024, ) x, y = cnn.make_inputs() probs = cnn.make_model(x) cnn.start_session() # Not necessary because adv_test will restore the model # cnn.init_session_and_restore() fgsm = FastGradientMethod(cnn, sess=cnn.sess) adv_x = fgsm.generate(x, **fgsm_params) adv_probs = cnn.make_model(adv_x)
import numpy as np import tensorflow as tf from cnn_gtsrb.cnn.model import CNNModel tf.logging.set_verbosity(tf.logging.INFO) results = [] for f in glob.glob('tmp/adv_cgtsrb10-32x32/fast-jsma_*.npy'): results.append(np.load(f)) data = np.concatenate(results, axis=0) cnn = CNNModel( image_size=32, classes=10, channels=3, model_name='cgtsrb10-32x32', model_dir='tmp/model-cgtsrb10-32x32', conv_layers=[32, 64, 128], fc_layers=[512], ) # cnn = CNNModel( # image_size=32, # classes=10, # channels=3, # model_name='cifar10-32x32', # model_dir='tmp/model-cifar10-32x32', # kernel_size=[3, 3], # conv_layers=[48, 96, 192], # fc_layers=[512, 256], # )
import logging import tensorflow as tf from cnn_gtsrb.dataset.mnist import MnistProvider from cnn_gtsrb.cnn.model import CNNModel #logging.basicConfig(level=logging.INFO) tf.logging.set_verbosity(tf.logging.INFO) mnist = MnistProvider() # mnist.dump_images() cnn = CNNModel( image_size=mnist.IMAGE_SIZE, classes=mnist.CLASSES, model_name='mnist-28x28.1', model_dir='tmp/mnist_model-28x28.1', conv_layers=[32, 64], fc_layer=1024, ) x, y = cnn.make_inputs() probs = cnn.make_model(x) cnn.start_session() cnn.train(probs, x, y, 17000, mnist) # cnn.test(gtsrb) cnn.end_session()