【发布时间】:2019-01-08 09:13:14
【问题描述】:
TensorFlow documentation 解释了 功能
tf.gradients(
ys,
xs,
grad_ys=None,
name='gradients',
colocate_gradients_with_ops=False,
gate_gradients=False,
aggregation_method=None,
stop_gradients=None
)
说:
- [it] 构造 ys w.r.t 之和的符号导数。 x 在 xs 中。
- ys 和 xs 都是张量或张量列表。
- gradients() 向图中添加操作以输出 ys 相对于 xs 的导数。
- ys:张量或要区分的张量列表
我发现很难将其与梯度的数学定义联系起来。例如,根据wikipedia,标量函数 f(x1, x2, x3, ..., xn) 的 梯度 是向量场(即函数 grad f : Rn -> Rn) 具有涉及向量点积的某些性质。也可以讲 f 在某个点的梯度:(grad f)(x1, x2, x3, ..., xn)。
TensorFlow 文档讨论的是 tensors 而不是 vectors:梯度的定义是否可以从将向量映射到标量的函数推广到将张量映射到标量的函数?张量之间是否存在点积?
即使梯度的定义可以应用于将张量映射到标量的函数 f(定义中的点积适用于张量),文档也谈到了区分 张量 本身:参数ys 是“张量或要区分的张量列表”。根据文档“张量是用于计算的多维数组”,所以张量不是函数,如何区分?
那么,TensorFlow 中的梯度概念与 wikipedia 中的定义有何关系?
【问题讨论】:
-
张量之间当然有一个点(内)积:en.wikipedia.org/wiki/Dot_product#Tensors
-
@desertnaut:感谢您的链接。
标签: tensorflow machine-learning gradient