本文整理汇总了Python中cleverhans.attacks.BasicIterativeMethod方法的典型用法代码示例。如果您正苦于以下问题:Python attacks.BasicIterativeMethod方法的具体用法?Python attacks.BasicIterativeMethod怎么用?Python attacks.BasicIterativeMethod使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cleverhans.attacks
的用法示例。
在下文中一共展示了attacks.BasicIterativeMethod方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_adv_examples
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import BasicIterativeMethod [as 别名]
def create_adv_examples(model, input_t, x_to_adv, attack_dict):
"""
This fn may seem bizarre and pointless, but the point of it is to
enable the entire attack to be specified as a dict from the command line without
editing this script, which is convenient for storing the settings used for an attack
"""
if attack_dict['method'] == 'fgm':
attack = attacks.FastGradientMethod(model, sess=K.get_session(), back='tf')
elif attack_dict['method'] == 'bim':
attack = attacks.BasicIterativeMethod(model, sess=K.get_session(), back='tf')
elif attack_dict['method'] == 'mim':
attack = attacks.MomentumIterativeMethod(model, sess=K.get_session(), back='tf')
else:
assert False, 'Current attack needs to be added to the create attack fn'
adv_tensor = attack.generate(input_t, **{k: a for k, a in attack_dict.items() if
k != 'method'}) # 'method' key for this fn use
x_adv = batch_eval(adv_tensor, input_t, x_to_adv, batch_size=args.batch_size, verbose="Generating adv examples")
return x_adv
示例2: setUp
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import BasicIterativeMethod [as 别名]
def setUp(self):
super(TestBasicIterativeMethod, self).setUp()
self.sess = tf.Session()
self.model = SimpleModel()
self.attack = BasicIterativeMethod(self.model, sess=self.sess)
示例3: __init__
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import BasicIterativeMethod [as 别名]
def __init__(self, model, dtypestr='float32'):
"""
Creates a BasicIterativeMethod instance in eager execution.
:model: CNN network, should be an instance of
cleverhans.model.Model, if not wrap
the output to probs.
:dtypestr: datatype in the string format.
"""
if not isinstance(model, Model):
model = CallableModelWrapper(model, 'probs')
super(BasicIterativeMethod, self).__init__(model, dtypestr)
示例4: generate_bim_examples
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import BasicIterativeMethod [as 别名]
def generate_bim_examples(sess, model, x, y, X, Y, attack_params, verbose, attack_log_fpath):
"""
Untargeted attack. Y is not needed.
"""
bim = BasicIterativeMethod(model, back='tf', sess=sess)
bim_params = {'eps': 0.1, 'eps_iter':0.05, 'nb_iter':10, 'y':y,
'ord':np.inf, 'clip_min':0, 'clip_max':1 }
bim_params = override_params(bim_params, attack_params)
X_adv = bim.generate_np(X, **bim_params)
return X_adv
示例5: test_attack_can_be_constructed
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import BasicIterativeMethod [as 别名]
def test_attack_can_be_constructed(self):
# The test passes if this raises no exceptions
self.attack = BasicIterativeMethod(self.model, sess=self.sess)
示例6: __init__
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import BasicIterativeMethod [as 别名]
def __init__(self, model, dtypestr='float32'):
"""
Creates a BasicIterativeMethod instance in eager execution.
:param model: cleverhans.model.Model
:param dtypestr: datatype in the string format.
"""
if not isinstance(model, Model):
wrapper_warning()
model = CallableModelWrapper(model, 'probs')
super(BasicIterativeMethod, self).__init__(model, dtypestr)
示例7: main
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import BasicIterativeMethod [as 别名]
def main(argv):
checkpoint = tf.train.latest_checkpoint(FLAGS.checkpoint_dir)
if checkpoint is None:
raise ValueError("Couldn't find latest checkpoint in " +
FLAGS.checkpoint_dir)
train_start = 0
train_end = 60000
test_start = 0
test_end = 10000
X_train, Y_train, X_test, Y_test = data_mnist(train_start=train_start,
train_end=train_end,
test_start=test_start,
test_end=test_end)
assert Y_train.shape[1] == 10
# NOTE: for compatibility with Madry Lab downloadable checkpoints,
# we cannot enclose this in a scope or do anything else that would
# change the automatic naming of the variables.
model = MadryMNIST()
x_input = tf.placeholder(tf.float32, shape=[None, 784])
x_image = tf.placeholder(tf.float32, shape=[None, 28, 28, 1])
y = tf.placeholder(tf.float32, shape=[None, 10])
if FLAGS.attack_type == 'fgsm':
fgsm = FastGradientMethod(model)
fgsm_params = {'eps': 0.3, 'clip_min': 0., 'clip_max': 1.}
adv_x = fgsm.generate(x_image, **fgsm_params)
elif FLAGS.attack_type == 'bim':
bim = BasicIterativeMethod(model)
bim_params = {'eps': 0.3, 'clip_min': 0., 'clip_max': 1.,
'nb_iter': 50,
'eps_iter': .01}
adv_x = bim.generate(x_image, **bim_params)
else:
raise ValueError(FLAGS.attack_type)
preds_adv = model.get_probs(adv_x)
saver = tf.train.Saver()
with tf.Session() as sess:
# Restore the checkpoint
saver.restore(sess, checkpoint)
# Evaluate the accuracy of the MNIST model on adversarial examples
eval_par = {'batch_size': FLAGS.batch_size}
t1 = time.time()
acc = model_eval(
sess, x_image, y, preds_adv, X_test, Y_test, args=eval_par)
t2 = time.time()
print("Took", t2 - t1, "seconds")
print('Test accuracy on adversarial examples: %0.4f\n' % acc)
示例8: main
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import BasicIterativeMethod [as 别名]
def main(argv):
checkpoint = tf.train.latest_checkpoint(FLAGS.checkpoint_dir)
if checkpoint is None:
raise ValueError("Couldn't find latest checkpoint in " +
FLAGS.checkpoint_dir)
train_start = 0
train_end = 60000
test_start = 0
test_end = 10000
X_train, Y_train, X_test, Y_test = data_mnist(train_start=train_start,
train_end=train_end,
test_start=test_start,
test_end=test_end)
assert Y_train.shape[1] == 10
# NOTE: for compatibility with Madry Lab downloadable checkpoints,
# we cannot enclose this in a scope or do anything else that would
# change the automatic naming of the variables.
model = MadryMNIST()
x_input = tf.placeholder(tf.float32, shape=[None, 784])
x_image = tf.placeholder(tf.float32, shape=[None, 28, 28, 1])
y = tf.placeholder(tf.float32, shape=[None, 10])
if FLAGS.attack_type == 'fgsm':
fgsm = FastGradientMethod(model)
fgsm_params = {'eps': 0.3, 'clip_min': 0., 'clip_max': 1.}
adv_x = fgsm.generate(x_image, **fgsm_params)
elif FLAGS.attack_type == 'bim':
bim = BasicIterativeMethod(model)
bim_params = {'eps': 0.3, 'clip_min': 0., 'clip_max': 1.,
'nb_iter': 50,
'eps_iter': .01}
adv_x = bim.generate(x_image, **bim_params)
else:
raise ValueError(FLAGS.attack_type)
preds_adv = model.get_probs(adv_x)
saver = tf.train.Saver()
with tf.Session() as sess:
# Restore the checkpoint
saver.restore(sess, checkpoint)
# Evaluate the accuracy of the MNIST model on adversarial examples
eval_par = {'batch_size': FLAGS.batch_size}
t1 = time.time()
acc = model_eval(
sess, x_image, y, preds_adv, X_test, Y_test, args=eval_par)
t2 = time.time()
print("Took", t2 - t1, "seconds")
print('Test accuracy on adversarial examples: %0.4f\n' % acc)