我想要一个代码示例来说明如何从聪明的汉斯的对抗性攻击中生成训练数据。
adv_x = fgsm.generate_np(X_test, **fgsm_params)
这会生成对抗性 x 数据,但我如何获得 y?
adv_pred = model.predict_classes(adv_x)
这会给出“愚弄”的结果,对吗?
我想要的是正确显示生成的 x、y、愚弄的 y(我的意思是模型预测的结果可能因攻击而错误)。顺便说一句,我正在使用 Mnist,如果有帮助的话。
最佳答案
根据您分享的代码片段,我提出两个建议:
在测试数据上训练模型通常不是一个好主意(如果您之后要使用该测试数据来评估其性能),因此我会将
X_test
替换为X_train
在你的第一行。要获取对抗性示例的标签,您可以使用训练数据的原始标签或模型对原始训练数据的预测
model.predict_classes(X_train)
(这假设对抗性示例没有受到足够的干扰来更改输入的标签)。
关于python - 从 Cleverhans 攻击模型生成对抗数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53827086/