Obtener el valor de algunas pesas en un modelo entrenado por TensorFlow


He entrenado un modelo ConvNet con TensorFlow, y quiero obtener un peso particular en layer. Por ejemplo, en torch7 simplemente accedería a model.modules[2].weights. para obtener los pesos de la capa 2. ¿Cómo haría yo lo mismo en TensorFlow?

 45
Author: mrry, 2016-03-24

1 answers

En TensorFlow, los pesos entrenados están representados por tf.Variable objetos. Si ha creado un tf.Variable-por ejemplo, llamado v-usted mismo, puede obtener su valor como una matriz NumPy llamando sess.run(v) (donde sess es un tf.Session).

Si actualmente no tiene un puntero a tf.Variable, puede obtener una lista de las variables entrenables en el gráfico actual llamando tf.trainable_variables(). Esta función devuelve una lista de todos los objetos entrenables tf.Variable en el gráfico actual, y puede seleccione el que desee haciendo coincidir la propiedad v.name. Por ejemplo:

# 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
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
2016-03-24 05:13:23