问题标签 [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.
python - DeepFool 无法将输入数组从形状 (28,28,28) 广播到形状 (28,28,1)
我正在尝试使用自动编码器进行深度傻瓜攻击,但它给了我以下错误:
这是我的代码:
python - 通过任何方法生成对抗样本时接收断言失败
我在通过任何方法生成对抗性示例时收到以下错误
我的生成对抗样本的代码
此处的模型代码 tensorflow 版本 = 1.13.1
https://github.com/geifmany/cifar-vgg/blob/master/cifar10vgg.py
完整的堆栈跟踪
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 图像的大小,同时保留其纵横比,将图像恢复到其原始大小的过程很复杂,并且对于每张图像都是独一无二的。
是否可以将此预处理步骤作为模型中的一个步骤添加,以直接获取原始图像上的噪声?我想这可能不是这种情况,因为并非所有预处理步骤都是可区分的?
这是否意味着如果预处理步骤太复杂,我无法查看应用于原始图像的噪声?
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的论文那样的小扰动和同样大的效果
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
:
它在加载模型后尝试在模型adv_trained
和naturally_trained
模型上使用它时遇到相同的错误。
这个问题有解决方法吗?
似乎另一种选择是使用cleverhans.model.CallableModelWrapper
,但我无法找到如何使用它的示例。
neural-network - 如何在 cw_l2 攻击中设置 L2 约束?
我们如何为 cw L2 攻击和 deepfool 攻击设置 L2 距离约束?在攻击出版物中,作者提到更小的 Lp 距离来声称更强的攻击,但是如何将 L2 距离限制为固定值是令人困惑的。对于 L-ifinity,它可以是最大最小裁剪,但如果我没记错的话,L2 距离是像素值上的平均 L2 距离,我们如何将其设置为固定值?
python - 当最后一层不是“softmax”(例如集成模型)时,如何应用 Cleverhans 攻击?
我正在尝试按照本文提出的方法攻击一组 Keras 模型。在第 5 节中,他们注意到攻击的形式为:
因此,我继续创建了一组预训练的 Keras MNIST 模型,如下所示:
在最后一行,我收到以下错误:
似乎要求目标模型的最后一层是 softmax 层。但是,从技术上讲,快速梯度方法不需要将其作为要求。这是 Cleverhans 为便于库实现而强制执行的吗?有没有办法绕过这个问题并使用 Cleverhans 攻击没有最终 softmax 层的模型?
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)。
python - cleverhans - clip_min、clip_max 当它们因频道而异时
cleverhans
并确保扰动数据仍在有效范围内clip_min
。clip_max
这很好用,例如,如果我正在处理矩阵中的值范围为0-255
或的图像0-1
。但是,当范围在不同维度上不同时,单个值不足以将图像约束为有效。例如,在大多数 ImageNet 模型中,图像是通过减去均值并除以每个通道的标准差来进行预处理的,因此单个值剪辑并不理想。这个问题有聪明的解决方法吗?
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