问题标签 [cleverhans]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
129 浏览

python - DeepFool 无法将输入数组从形状 (28,28,28) 广播到形状 (28,28,1)

我正在尝试使用自动编码器进行深度傻瓜攻击,但它给了我以下错误:

这是我的代码:

0 投票
1 回答
128 浏览

python - 通过任何方法生成对抗样本时接收断言失败

我在通过任何方法生成对抗性示例时收到以下错误

我的生成对抗样本的代码

此处的模型代码 tensorflow 版本 = 1.13.1

https://github.com/geifmany/cifar-vgg/blob/master/cifar10vgg.py

完整的堆栈跟踪

0 投票
1 回答
104 浏览

machine-learning - 使用 Cleverhans 进行对抗性攻击后提取原始图像格式

假设我使用 Cleverhans 加载 MNIST 数据集并使用 FGM 攻击图像。我通过 Cleverhans MNIST 数据集加载的任何图像都已经将其像素值限制为 [0, 1],在我攻击图像后也是如此(假设我将图像剪辑为 [0, 1])。如果我想在这种情况下查看攻击,我只需将所有像素值乘以 255 并创建对抗图像。

在这种情况下,像素值在 [0, 255] 中的原始 MNIST 图像已改为通过将所有值除以 255 使其像素值在 [0, 1] 中。为了取回原始“图像属性”,我只需再次乘以 255。

当这个预处理步骤(在 MNIST 的情况下,除以 255)更复杂时,有没有办法(在 Cleverhans 中或一般而言)提取原始图像属性?例如,我正在考虑 VGG16,其中调整 ImageNet 图像的大小,同时保留其纵横比,将图像恢复到其原始大小的过程很复杂,并且对于每张图像都是独一无二的。

是否可以将此预处理步骤作为模型中的一个步骤添加,以直接获取原始图像上的噪声?我想这可能不是这种情况,因为并非所有预处理步骤都是可区分的?

这是否意味着如果预处理步骤太复杂,我无法查看应用于原始图像的噪声?

0 投票
1 回答
146 浏览

imagenet - 如何让cleverhans 的 cw 在 Imagenet 数据集上运行良好?我找不到合适的参数

我使用 cw 的cleverhans 代码在 Imagenet 上生成对抗性示例。目标模型是 InceptionV3(来自 keras),我想使用 cw 进行有针对性的攻击。但是当我保存广告图像时,它们与原始图像相比发生了很大变化。我想也许我使用了错误的参数。cw_params = {'binary_search_steps': 10, 'y_target': None,#(我稍后指定 y_target) 'max_iterations': 20000, 'learning_rate': .0002, 'batch_size': 1, 'initial_const': 10}

我尝试了很多参数,但我仍然找不到像carlini的论文那样好的效果。而且当我使用这个参数时,运行时间真的很长。我不知道合适的时间。

目标攻击的成功示例与 Imagenet 中的原始图像相比发生了很大变化。我怎样才能得到像cw的论文那样的小扰动和同样大的效果

0 投票
0 回答
164 浏览

python - 将预训练的 resnet 模型加载到cleverhans 模型格式

我正在尝试将预训练的 ResNet 模型从MadryLab CIFAR-10挑战加载CleverHans到计算传输攻击中。

但是,将保存的模型恢复到model_zoo.madry_lab_challenges.cifar10_model.ResNet对象中不起作用。它最初似乎恢复正常,但是当我尝试实际使用该模型时,出现错误,例如:

尝试使用未初始化的值 ResNet/unit_3_1/residual_only_activation/BatchNorm/moving_mean

重现此错误的最简单方法是实际运行此处提供的attack_model.py示例CleverHans

https://github.com/tensorflow/cleverhans/blob/master/examples/madry_lab_challenges/cifar10/attack_model.py

它在加载模型后尝试在模型adv_trainednaturally_trained模型上使用它时遇到相同的错误。

这个问题有解决方法吗?

似乎另一种选择是使用cleverhans.model.CallableModelWrapper,但我无法找到如何使用它的示例。

0 投票
1 回答
120 浏览

neural-network - 如何在 cw_l2 攻击中设置 L2 约束?

我们如何为 cw L2 攻击和 deepfool 攻击设置 L2 距离约束?在攻击出版物中,作者提到更小的 Lp 距离来声称更强的攻击,但是如何将 L2 距离限制为固定值是令人困惑的。对于 L-ifinity,它可以是最大最小裁剪,但如果我没记错的话,L2 距离是像素值上的平均 L2 距离,我们如何将其设置为固定值?

0 投票
1 回答
412 浏览

python - 当最后一层不是“softmax”(例如集成模型)时,如何应用 Cleverhans 攻击?

我正在尝试按照本文提出的方法攻击一组 Keras 模型。在第 5 节中,他们注意到攻击的形式为: 在此处输入图像描述

因此,我继续创建了一组预训练的 Keras MNIST 模型,如下所示:

在最后一行,我收到以下错误:

似乎要求目标模型的最后一层是 softmax 层。但是,从技术上讲,快速梯度方法不需要将其作为要求。这是 Cleverhans 为便于库实现而强制执行的吗?有没有办法绕过这个问题并使用 Cleverhans 攻击没有最终 softmax 层的模型?

0 投票
1 回答
118 浏览

tensorflow - 如何使用 tensorflow sess 更改 Cleverhans 'test_imagenet_attacks.py'?

在 Cleverhans 示例中:cleverhans/examples/test_imagenet_attacks.py

他们使用 sess=None 实施 SPSA 攻击。

但是在 Cleverhans 攻击 repo 中,有很多方法不能将 sess 设置为 None,例如 CW、DeepFool、BFGS...

如何使用 sess 更改代码并使用这些方法生成对抗性示例?

链接:https ://github.com/tensorflow/cleverhans/blob/master/examples/test_imagenet_attacks.py

ImagNet 上 SPSA 攻击的代码片段:

但是对于DeepFool,我们不能写attack = SPSA(model),因为它必须是attack = DeepFool(model, sess)。

0 投票
1 回答
44 浏览

python - cleverhans - clip_min、clip_max 当它们因频道而异时

cleverhans并确保扰动数据仍在有效范围内clip_minclip_max这很好用,例如,如果我正在处理矩阵中的值范围为0-255或的图像0-1。但是,当范围在不同维度上不同时,单个值不足以将图像约束为有效。例如,在大多数 ImageNet 模型中,图像是通过减去均值并除以每个通道的标准差来进行预处理的,因此单个值剪辑并不理想。这个问题有聪明的解决方法吗?

0 投票
0 回答
375 浏览

python - AttributeError:“Conv2D”对象没有属性“get_config”

我正在尝试对 mnist 数据集运行 fgsm 攻击。我收到“对象没有属性”错误:
我使用过:python 2(在 google colab 中)Keras==2.1.3 tensorflow==1.14.0

我还使用 keras==1.2 和 keras==2.1.5 运行它,我还将 get_config 转换为 _get_config,但是,所有运行都失败了。

Unit_keras.py 在这里:https
://github.com/tensorflow/cleverhans/blob/master/cleverhans/utils_keras.py 我也使用过:https ://github.com/tensorflow/cleverhans/blob/6b065c4507f50e2545c009f75e82678f92353163/cleverhans/utils_keras .py