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 攻击的代码片段:
attack = SPSA(model)
x_adv = attack.generate(x_input, ...)
logits = model.get_logits(x_adv)
acc = _top_1_accuracy(logits, y_label)
saver = tf.train.Saver(slim.get_model_variables())
session_creator = tf.train.ChiefSessionCreator(...)
with tf.train.MonitoredSession(session_creator) as sess:
for i in xrange(num_images):
feed_dict_i = {x_input, y_label}
acc_val = sess.run(acc, feed_dict=feed_dict_i)
但是对于DeepFool,我们不能写attack = SPSA(model),因为它必须是attack = DeepFool(model, sess)。
解决方案
如果您想将会话传递给攻击对象,您可以在实例化它时这样做:
attack = SPSA(model, sess=sess)
attack = LBFGS(model, sess)
推荐阅读
- c++ - 全局变量不更新自身 - C++
- java - 为什么重写的方法应该在这个程序中公开?
- r - https://r-forge.r-project.org/ 和其中的包不起作用
- python-3.x - 沿不同轴求和在 numpy.sum 中返回相同的形状
- javascript - 未从 Facebook Api 获取电子邮件字段
- php - 将所有页面重定向到主页并删除 .htaccess 中的 .php 扩展名
- python - 在python中合并符合某些条件的行
- java - 为什么我不能使用 Selenium WebDriver 保存模式
- c++ - 逐步使用 gcov 和 CMake
- sorting - Spotfire - 如何隐藏表格可视化中的列,即使我使用此列对其余列进行排序