1

我想要一个代码示例来说明如何从聪明的 hans 的对抗性攻击中生成训练数据。

adv_x = fgsm.generate_np(X_test, **fgsm_params)

这会生成对抗性 x 数据,但我怎样才能得到 y?

adv_pred = model.predict_classes(adv_x)

这会给出“上当”的结果,对吗?

我想要的是正确显示生成的 x、y、被愚弄的 y(我的意思是模型预测的结果可能由于攻击而错误)。顺便说一句,我正在使用 Mnist,如果有帮助的话。

4

1 回答 1

1

根据您分享的代码片段,我会提出两个建议:

  • 在测试数据上训练模型通常不是一个好主意(如果您以后要使用该测试数据来评估其性能),所以我会在您的第一行替换X_test为。X_train

  • 要获取对抗样本的标签,您可以使用训练数据的原始标签或模型对原始训练数据的预测model.predict_classes(X_train)(这假设对抗样本没有受到足够的干扰而无法更改输入的标签)。

于 2018-12-18T16:23:32.963 回答