使用tf.gradients()
函数,您可以计算一个张量相对于一个或多个其他张量(包括变量tf.gradients()
的符号梯度。考虑以下简单示例:
data = tf.placeholder(tf.float32)
var = tf.Variable(...) # Must be a tf.float32 or tf.float64 variable.
loss = some_function_of(var, data) # some_function_of() returns a `Tensor`.
var_grad = tf.gradients(loss, [var])[0]
然后,您可以使用此符号渐变来评估某些特定点(数据)上的渐变:
sess = tf.Session()
var_grad_val = sess.run(var_grad, feed_dict={data: ...})
0
我所追求的功能是能够根据给定的数据判断给定变量相对于误差函数的梯度。
一种方法是查看调用训练后变量的变化量,但是显然,根据学习算法,变量会发生很大变化(例如,几乎不可能用RProp这样的变量来分辨),而仅仅是不是很干净。
提前致谢。