【发布时间】:2016-03-29 17:17:55
【问题描述】:
我想为我的神经网络实现以下成本函数:
这利用神经网络的对抗性输入来改进泛化[ref]。
具体来说,我遇到了问题 部分。 在我的 TensorFlow 图中,我将 定义为一个操作。我怎样才能用 以外的参数来喂?
到目前为止,我发现这样做的唯一方法是定义一个并行网络,它与我的原始网络共享权重,并在其feed_dict 参数中传递。如果可能的话,我想避免重新定义我的整个网络。我该怎么做?
我的 TensorFlow 模型写成:
x = tf.placeholder(tf.float32, [None, 32, 32]);
... # A simple neural network
y = tf.add(tf.matmul(h, W1), b1);
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y, t));
可能相关:
tf.stop_gradient(input, name=None)
停止梯度计算。
...还有很多东西...
- 对抗性训练,在对抗性示例生成过程中不应发生反向传播。
https://www.tensorflow.org/versions/r0.7/api_docs/python/train.html#stop_gradient
【问题讨论】:
-
你的模型代码是怎么写的?您是否有一个模型类的方法可以在给定一些张量的情况下构建 fprop 图?或者您是否正在使用一些与 TensorFlow 一起发布的现有代码?
-
更新了原始问题以反映模型的定义。
-
@Shadowen,我也需要这样做,你能分享你的代码吗?