Tensorflow 张量流优化

Tensorflow 张量流优化,tensorflow,optimization,Tensorflow,Optimization,假设我有一个实现分类模型的tensorflow图: x = tf.placeholder(tf.float32, shape) # [insert mdoel here] logits = tf.layers.dense(inputs=..., units=num_labels, activation=None) 现在假设我想使用Adam优化器对输入进行优化 例如,为了找到有针对性的对抗性示例,我将声明一个要优化的变量(在执行过程中在某个示例中初始化),指定一个不同于真实类的目标类,计算交叉熵

假设我有一个实现分类模型的tensorflow图:

x = tf.placeholder(tf.float32, shape)
# [insert mdoel here]
logits = tf.layers.dense(inputs=..., units=num_labels, activation=None)
现在假设我想使用Adam优化器对输入进行优化

例如,为了找到有针对性的对抗性示例,我将声明一个要优化的变量(在执行过程中在某个示例中初始化),指定一个不同于真实类的目标类,计算交叉熵并将其最小化

var_to_optimize = tf.Variable(np.zeros(shape, dtype=np.float32))
tgt_label = tf.placeholder(tf.float32, shape=[num_labels])
xent = tf.nn.softmax_cross_entropy_with_logits_v2(labels=tgt_label, logits=logits)
然后我想通过扰动输入来最小化交叉熵

optimizer = tf.train.AdamOptimizer(learning_rate=1e-3)
training_op = optimizer.minimize(xent, var_list=[var_to_optimize])

但是,xent要求为输入占位符x提供值。如何将模型的logits与var_链接以进行优化?

我试图回答的问题基本上如下:如何在同一张tensorflow图上创建两个单独的优化过程

以下链接中的教程介绍了如何执行此操作:定义了一个tensorflow图,用于训练神经网络,然后添加优化的随机噪声(样本间均匀),以导致大多数样本的错误分类