此代码出了什么问题?我已经使用cleverhans API-generate_np方法生成了对抗图像。并使用默认的cleverhans CNN分类器对图像进行分类。生成图像后使用模型时,测试精度非常低。但是,如果我保存并重新加载模型,则准确性太高。请在此处检查代码。
https://github.com/csesivakumar/Adversarial_Defense/blob/master/Cleverhans_generatenp.ipynb
Python:3.6
答案 0 :(得分:0)
在其他人遇到相同问题的情况下,从GitHub issue tracker粘贴我的答案:
在使用Keras训练了模型之后,从您的代码看来,您正在初始化模型的权重,定义tf会话等。我的猜测是adv_x数组不包含具有对抗性的图像。这可以解释为什么[22]的精度输出接近随机数-因为模型权重是随机的。当您恢复模型时,其权重将再次设置为在训练过程中获得的值,从而恢复了准确性(因为图像不是对抗性的)。