コード例 #1
0
ファイル: run.py プロジェクト: charlee/gtsrb-cnn-adv
 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],
     )
コード例 #2
0
ファイル: run.py プロジェクト: charlee/gtsrb-cnn-adv
    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],
        )
コード例 #3
0
ファイル: probs.py プロジェクト: charlee/gtsrb-cnn-adv
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]
コード例 #4
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]
コード例 #5
0
# 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,
コード例 #6
0
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()
コード例 #7
0
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)
コード例 #8
0
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],
# )
コード例 #9
0
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()