python中的tensorflow梯度函数中的grad
参数(如下文中的示例所示)代表什么?
@tf.RegisterGradient("Sub")
def _sub_grad(unused_op, grad):
return grad, tf.neg(grad)
文档称它代表“关于操作的每个输出的渐变”。哪个渐变? op的每个输出的梯度,相对于op的每个输出
这里的操作是x - y。这是否意味着此函数中的grad
参数引用
这与函数的输出一致,即
但我想确定。
提前感谢您的澄清!
答案 0 :(得分:1)
您可以在CS231n注释here中阅读有关反向传播如何工作的精彩介绍。
图表中的每个操作(在您的例子中,x-y
)都有输入和输出。在反向传播期间,梯度从输出(从损失开始)流向输入。
我们在反向传播中计算的每个梯度都是相对于参数的损失>的渐变。所以"关于操作的每个输出的渐变。" 表示损失相对于输出的梯度:
函数的输出是相对于x
和y
的损失的梯度: