¿Cómo obtengo el gradiente de la pérdida en una variable TensorFlow?
La característica que busco es poder decir cuál es el gradiente de una variable dada con respecto a mi función de error dados algunos datos.
Una forma de hacer esto sería ver cuánto ha cambiado la variable después de una llamada a train, pero obviamente eso puede variar enormemente en función del algoritmo de aprendizaje (por ejemplo, sería casi imposible decirlo con algo como RProp) y simplemente no es muy limpio.
Gracias de antemano.
34
1 answers
El tf.gradients()
la función le permite calcular el gradiente simbólico de un tensor con respecto a uno o más tensores, incluidas las variables. Considere el siguiente ejemplo simple:
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]
Luego puede usar este gradiente simbólico para evaluar el gradiente en algún punto específico (datos):
sess = tf.Session()
var_grad_val = sess.run(var_grad, feed_dict={data: ...})
46
Author: mrry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-13 13:46:29
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-13 13:46:29