我正在学习如何使用Tensorflow,在这个特定的点上,我真的被卡住了,无法理解它。想象一下,我有一个5层网络,输出由 Intent iin= getIntent();
Bundle b = iin.getExtras();
if(b!=null)
{
String n =(String) b.get("user_email");
}
表示。现在假设我想找到output
相对于output
的渐变。为此,我将在Tensorflow中编写的代码类似于:
layer_2
理论上,这个梯度应该通过链规则来计算。我想问一下,Tensorflow是否通过链式规则计算这些梯度,或者它只取gradients_i_want = tf.gradients(output, layer_2)
相对于output
答案 0 :(得分:0)
Tensorflow将为您的模型创建一个图形,其中每个节点都是一个操作(例如,加法,乘法或它们的组合)。基本操作具有手动定义的梯度函数,并且在向后移动图形时应用链规则时将使用这些函数。
如果您编写自己的自定义op,则可能还需要编写相应的渐变函数。