attr = getattr(args, kwarg) if attr is not None: config_kwargs[kwarg] = attr logger = tf.get_logger() logger.setLevel(tf.logging.INFO) if args.logger: config_kwargs['logger'] = logger print('Loading tensorflow session...') config = tf.ConfigProto() config.gpu_options.allow_growth = True session = tf.Session(config=config) print('Loading model...') model = load_model_from_path(args.model).load(session) print('Loading dataset...') if args.dataset == 'cifar10': from realsafe.dataset import cifar10 dataset = cifar10.load_dataset_for_classifier(model, offset=args.offset, load_target=True) else: from realsafe.dataset import imagenet dataset = imagenet.load_dataset_for_classifier(model, offset=args.offset, load_target=True) dataset = dataset.take(args.count) print('Loading attack...')
import numpy as np import os from keras.datasets.cifar10 import load_data from realsafe import BIM, CrossEntropyLoss from realsafe.model.loader import load_model_from_path batch_size = 100 config = tf.ConfigProto() config.gpu_options.allow_growth = True session = tf.Session(config=config) model_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../example/cifar10/resnet56.py') rs_model = load_model_from_path(model_path) model = rs_model.load(session) _, (xs_test, ys_test) = load_data() xs_test = (xs_test / 255.0) * (model.x_max - model.x_min) + model.x_min ys_test = ys_test.reshape(len(ys_test)) xs_ph = tf.placeholder(model.x_dtype, shape=(batch_size, *model.x_shape)) lgs, lbs = model.logits_and_labels(xs_ph) def iteration_callback(xs, xs_adv): delta = tf.abs(xs_adv - xs) return tf.reduce_max(tf.reshape(delta, (xs.shape[0], -1)), axis=1)
import numpy as np import os from realsafe.dataset import cifar10, dataset_to_iterator from realsafe.model.loader import load_model_from_path from realsafe.model.ensemble import EnsembleModel, EnsembleRandomnessModel batch_size = 100 config = tf.ConfigProto() config.gpu_options.allow_growth = True session = tf.Session(config=config) model_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../example/cifar10/resnet56.py') model = load_model_from_path(model_path).load(session) e_model = EnsembleModel([model, model], [0.5, 0.5]) er_model = EnsembleRandomnessModel(model, 10, session) ds = cifar10.load_dataset_for_classifier(model).batch(batch_size).take(1) _, xs, ys = next(dataset_to_iterator(ds, session)) xs_ph = tf.placeholder(model.x_dtype, shape=(batch_size, *model.x_shape)) labels = model.labels(xs_ph) e_labels = e_model.labels(xs_ph) er_labels = er_model.labels(xs_ph) labels_np = session.run(labels, feed_dict={xs_ph: xs}) e_labels_np = session.run(e_labels, feed_dict={xs_ph: xs}) er_labels_np = session.run(er_labels, feed_dict={xs_ph: xs})