张量流梯度函数(python)中{grad`参数的含义

时间:2016-06-23 00:48:01

标签: tensorflow

python中的tensorflow梯度函数中的grad参数(如下文中的示例所示)代表什么?

@tf.RegisterGradient("Sub")
def _sub_grad(unused_op, grad):
  return grad, tf.neg(grad)

文档称它代表“关于操作的每个输出的渐变”。哪个渐变? op的每个输出的梯度,相对于op的每个输出

这里的操作是x - y。这是否意味着此函数中的grad参数引用

grad

这与函数的输出一致,即

enter image description here

但我想确定。

提前感谢您的澄清!

1 个答案:

答案 0 :(得分:1)

您可以在CS231n注释here中阅读有关反向传播如何工作的精彩介绍。

图表中的每个操作(在您的例子中,x-y)都有输入和输出。在反向传播期间,梯度从输出(从损失开始)流向输入。

我们在反向传播中计算的每个梯度都是相对于参数的损失的渐变。所以"关于操作的每个输出的渐变。" 表示损失相对于输出的梯度:

gradients

函数的输出是相对于xy的损失的梯度:

grads_x

grads_y