Tensorflow 如何计算输出相对于输入的梯度?
Tensorflow how to compute the gradient of output with respect to the input?
最近,我尝试做一些实验,我有一个神经网络 D(x),其中 x 是批量大小为 64 的输入图像。我想计算 D(x) 相对于 x 的梯度。我应该按以下方式计算吗?
grad = tf.gradients(D(x), [x])
谢谢大家!
在神经网络的训练过程中,梯度通常是根据输入计算 loss function
的。这是因为,可以很好地定义损失函数及其梯度。
但是,如果您谈论输出的梯度 D(x)
,我假设这是一组向量。您将需要定义如何根据其输入(即生成输出的层)计算梯度。
该实现的具体细节取决于您使用的框架。
是的,您将需要使用 tf.gradients
。有关详细信息,请参阅 https://www.tensorflow.org/api_docs/python/tf/gradients。
最近,我尝试做一些实验,我有一个神经网络 D(x),其中 x 是批量大小为 64 的输入图像。我想计算 D(x) 相对于 x 的梯度。我应该按以下方式计算吗?
grad = tf.gradients(D(x), [x])
谢谢大家!
在神经网络的训练过程中,梯度通常是根据输入计算 loss function
的。这是因为,可以很好地定义损失函数及其梯度。
但是,如果您谈论输出的梯度 D(x)
,我假设这是一组向量。您将需要定义如何根据其输入(即生成输出的层)计算梯度。
该实现的具体细节取决于您使用的框架。
是的,您将需要使用 tf.gradients
。有关详细信息,请参阅 https://www.tensorflow.org/api_docs/python/tf/gradients。