声明:
- 参考官方文档
- 参考tensorflow学习笔记(三十)
- 关于神经网络中的梯度计算,推荐吴恩达的deeplearning公开课
tf.gradients()
在tensorflow中,tf.gradients()
的参数如下:
tf.gradients(ys, xs,
grad_ys=None,
name='gradients',
colocate_gradients_with_ops=False,
gate_gradients=False,
aggregation_method=None,
stop_gradients=None)
先不给出参数的意义~
对求导函数而言,其主要功能即求导公式: ∂ y ∂ x \frac {\partial y}{\partial x} ∂x∂y。在tensorflow中, y y y和 x x x都是tensor。
更进一步,tf.gradients()
接受求导值ys
和xs
不仅可以是tensor,还可以是list,形如[tensor1, tensor2, …, tensorn]。当ys
和xs
都是list时,它们的求导关系为:
gradients()
adds ops to the graph to output the derivatives ofys
with respect toxs
. It returns a list ofTensor
of lengthlen(xs)
where each tensor is thesum(dy/dx)
for y inys
.
意思是:
tf.gradients()
实现ys
对xs
求导- 求导返回值是一个list,list的长度等于
len(xs)
- 假设返回值是[grad1, grad2, grad3],
ys
=[y1, y2],xs
=[x1, x2, x3]。则,真实的计算过程为:- g r a d 1 = y 1 x 1 + y 2 x 1 grad1 = \frac {y1}{x1} + \frac {y2}{x1} grad1=x1y1