2017-09-15 4 views
0

j'ai calculé en utilisant des gradients (tf.vars est la liste des tenseurs qui sont trainable)comment utiliser tf.gradients et gradients_apply

x = tf.gradients(y,tf.vars) 

suppose maintenant que je veux appliquer cette optimizer.apply_gradients en utilisant des gradients, je besoin de donner une liste contenant des tuples de la forme de (gradient, variable). Comment générer une telle liste?

optimizer.apply_gradients(??) 

Que se passe dans l'espace ??

Répondre

0

La liste à passer à optimizer.apply_gradients doit être une liste de paires (g, v)v est une variable du graphique et g le gradient w.r.t. vous voulez mettre à jour v.

donc quelque chose comme cela devrait fonctionner:

[(g, v) for g, v in zip(x, tf.vars)] 
+0

le problème est que comment puis-je confirmer si l'ordre des variables x est le même que celui tf.vars? –

+0

il est assuré par tf.gradients: https://www.tensorflow.org/api_docs/python/tf/gradients –

+0

la documentation ne dit pas que l'odering des variables reste inchangé. –