Obtenir la valeur de quelques poids dans un modèle formé par TensorFlow

j'ai formé un modèle ConvNet avec TensorFlow, et je veux obtenir un poids particulier dans la couche. Par exemple, dans torch7 je voudrais simplement accéder à model.modules[2].weights. pour obtenir le poids de la couche 2. Comment ferais-je la même chose à TensorFlow?

45
demandé sur mrry 2016-03-24 07:58:58

1 réponses

dans TensorFlow, les poids entraînés sont représentés par tf.Variable objets. Si vous avez créé un tf.Variable-par exemple appelé v-vous-même, vous pouvez obtenir sa valeur en tant que numpy array en appelant sess.run(v) (où sess est un tf.Session).

si vous n'avez pas de pointeur sur le tf.Variable, Vous pouvez obtenir une liste des variables à former dans le graphe actuel en appelant tf.trainable_variables(). Cette fonction renvoie une liste de tous les éducables tf.Variable objets dans le graphique courant, et vous pouvez sélectionner celui que vous voulez en faisant correspondre le v.name propriété. Par exemple:

# Desired variable is called "tower_2/filter:0".
var = [v for v in tf.trainable_variables() if v.name == "tower_2/filter:0"][0]
69
répondu mrry 2016-03-24 05:13:23