源自于一个项目github对抗干扰的项目

项目本身是2014年的项目,时间过于久远使用了很旧的API,因此直接运行起来会有一些问题,项目链接为https://github.com/jason71995/Keras_adversarial_attack

项目使用框架为tensorflow和keras,图片在进行攻击之后进行了一个存储,但是在存储的时候会发现API过时,通过简单的修改可以让其正常运行

print ("============================== Saving Images ==============================")
images = (x_test[:100]*255).astype("uint8")
images = np.reshape(images,(10,10,28,28))
images = np.transpose(images,(0,2,1,3))
images = np.reshape(images,(280,280))
misc.imsave("normal_images.png",images)

attack_images, = attack_func([x_test[:100], y_test[:100], eps, 0])
images = (attack_images*255).astype("uint8")
images = np.reshape(images,(10,10,28,28))
images = np.transpose(images,(0,2,1,3))
images = np.reshape(images,(280,280))
misc.imsave("attack_images.png",images)

这个是文件的后半段内容代码,报错提示misc.imsave已经被弃用了,使用新的API接口imageio解决。

先通过pip或者conda下载新的API

pip install imageio

然后直接在源代码的基础之上修改为:

import imageio   #添加新的内容

#…………省略中间内容…………#

print ("============================== Saving Images ==============================")
images = (x_test[:100]*255).astype("uint8")
images = np.reshape(images,(10,10,28,28))
images = np.transpose(images,(0,2,1,3))
images = np.reshape(images,(280,280))
#misc.imsave("normal_images.png",images)
imageio.imwrite("normal_images.png",images)

attack_images, = attack_func([x_test[:100], y_test[:100], eps, 0])
images = (attack_images*255).astype("uint8")
images = np.reshape(images,(10,10,28,28))
images = np.transpose(images,(0,2,1,3))
images = np.reshape(images,(280,280))
#misc.imsave("attack_images.png",images)
imageio.imwrite("attack_images.png",images)

就可以正常运行了,其文件会直接保存在项目当前路径中。

imageio.imwrite(“路径地址”,图片信息)

路径地址分为 相对地址 和 绝对地址 两类,相对地址会以当前代码存储的路径为基础,图片信息就是我们处理和对抗的内容了。

第一次在linux上面水博客文章QWQ

分类: AIPYTHON

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注