本文整理汇总了Python中cleverhans.attacks.MadryEtAl方法的典型用法代码示例。如果您正苦于以下问题:Python attacks.MadryEtAl方法的具体用法?Python attacks.MadryEtAl怎么用?Python attacks.MadryEtAl使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cleverhans.attacks
的用法示例。
在下文中一共展示了attacks.MadryEtAl方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: setUp
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import MadryEtAl [as 别名]
def setUp(self):
super(TestMadryEtAl, self).setUp()
self.sess = tf.Session()
self.model = SimpleModel()
self.attack = MadryEtAl(self.model, sess=self.sess)
示例2: parse_params
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import MadryEtAl [as 别名]
def parse_params(self, ngpu=1, **kwargs):
"""
Take in a dictionary of parameters and applies attack-specific checks
before saving them as attributes.
Attack-specific parameters:
:param ngpu: (required int) the number of GPUs available.
:param kwargs: A dictionary of parameters for MadryEtAl attack.
"""
return_status = super(MadryEtAlMultiGPU, self).parse_params(**kwargs)
self.ngpu = ngpu
return return_status
示例3: return_paras
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import MadryEtAl [as 别名]
def return_paras(model_name):
if model_name == 'SCE':
return 0, None, False, False, False, False, 0.0, True
elif model_name == 'MMC-10':
return 10.0, None, False, True, True, False, 0.0, False
elif model_name == 'MMC-100':
return 100.0, None, False, True, True, False, 0.0, False
elif model_name == 'AT-SCE':
return 0, 'MadryEtAl', True, False, False, True, 1.0, True
elif model_name == 'AT-MMC-10':
return 10, 'MadryEtAl', True, True, True, True, 1.0, False
elif model_name == 'AT-MMC-100':
return 100, 'MadryEtAl', True, True, True, True, 1.0, False
else:
return None
示例4: test_attack_can_be_constructed
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import MadryEtAl [as 别名]
def test_attack_can_be_constructed(self):
# The test passes if this does not raise an exception
self.attack = MadryEtAl(self.model, sess=self.sess)
示例5: parse_params
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import MadryEtAl [as 别名]
def parse_params(self, ngpu=1, **kwargs):
"""
Take in a dictionary of parameters and applies attack-specific checks
before saving them as attributes.
Attack-specific parameters:
:param ngpu: (required int) the number of GPUs available.
:param kwargs: A dictionary of parameters for MadryEtAl attack.
"""
return_status = super(MadryEtAlMultiGPU, self).parse_params(**kwargs)
self.ngpu = ngpu
return return_status
示例6: create_adv_by_name
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import MadryEtAl [as 别名]
def create_adv_by_name(model, x, attack_type, sess, dataset, y=None, **kwargs):
"""
Creates the symbolic graph of an adversarial example given the name of
an attack. Simplifies creating the symbolic graph of an attack by defining
dataset-specific parameters.
Dataset-specific default parameters are used unless a different value is
given in kwargs.
:param model: an object of Model class
:param x: Symbolic input to the attack.
:param attack_type: A string that is the name of an attack.
:param sess: Tensorflow session.
:param dataset: The name of the dataset as a string to use for default
params.
:param y: (optional) a symbolic variable for the labels.
:param kwargs: (optional) additional parameters to be passed to the attack.
"""
# TODO: black box attacks
attack_names = {'FGSM': FastGradientMethod,
'MadryEtAl': MadryEtAl,
'MadryEtAl_y': MadryEtAl,
'MadryEtAl_multigpu': MadryEtAlMultiGPU,
'MadryEtAl_y_multigpu': MadryEtAlMultiGPU,
}
if attack_type not in attack_names:
raise Exception('Attack %s not defined.' % attack_type)
attack_params_shared = {
'mnist': {'eps': .3, 'eps_iter': 0.01, 'clip_min': 0., 'clip_max': 1.,
'nb_iter': 40},
'cifar10': {'eps': 8./255, 'eps_iter': 0.01, 'clip_min': 0.,
'clip_max': 1., 'nb_iter': 20}
}
with tf.variable_scope(attack_type):
attack_class = attack_names[attack_type]
attack = attack_class(model, sess=sess)
# Extract feedable and structural keyword arguments from kwargs
fd_kwargs = attack.feedable_kwargs.keys() + attack.structural_kwargs
params = attack_params_shared[dataset].copy()
params.update({k: v for k, v in kwargs.items() if v is not None})
params = {k: v for k, v in params.items() if k in fd_kwargs}
if '_y' in attack_type:
params['y'] = y
logging.info(params)
adv_x = attack.generate(x, **params)
return adv_x
示例7: create_adv_by_name
# 需要导入模块: from cleverhans import attacks [as 别名]
# 或者: from cleverhans.attacks import MadryEtAl [as 别名]
def create_adv_by_name(model, x, attack_type, sess, dataset, y=None, **kwargs):
"""
Creates the symbolic graph of an adversarial example given the name of
an attack. Simplifies creating the symbolic graph of an attack by defining
dataset-specific parameters.
Dataset-specific default parameters are used unless a different value is
given in kwargs.
:param model: an object of Model class
:param x: Symbolic input to the attack.
:param attack_type: A string that is the name of an attack.
:param sess: Tensorflow session.
:param dataset: The name of the dataset as a string to use for default
params.
:param y: (optional) a symbolic variable for the labels.
:param kwargs: (optional) additional parameters to be passed to the attack.
"""
# TODO: black box attacks
attack_names = {'FGSM': FastGradientMethod,
'MadryEtAl': MadryEtAl,
'MadryEtAl_y': MadryEtAl,
'MadryEtAl_multigpu': MadryEtAlMultiGPU,
'MadryEtAl_y_multigpu': MadryEtAlMultiGPU
}
if attack_type not in attack_names:
raise Exception('Attack %s not defined.' % attack_type)
attack_params_shared = {
'mnist': {'eps': .3, 'eps_iter': 0.01, 'clip_min': 0., 'clip_max': 1.,
'nb_iter': 40},
'cifar10': {'eps': 8./255, 'eps_iter': 0.01, 'clip_min': 0.,
'clip_max': 1., 'nb_iter': 20}
}
with tf.variable_scope(attack_type):
attack_class = attack_names[attack_type]
attack = attack_class(model, sess=sess)
# Extract feedable and structural keyword arguments from kwargs
fd_kwargs = attack.feedable_kwargs.keys() + attack.structural_kwargs
params = attack_params_shared[dataset].copy()
params.update({k: v for k, v in kwargs.items() if v is not None})
params = {k: v for k, v in params.items() if k in fd_kwargs}
if '_y' in attack_type:
params['y'] = y
logging.info(params)
adv_x = attack.generate(x, **params)
return adv_x