tutorial redes recurrente neuronales neuronal modelo imagenes entrenar convolucionales clasificador tensorflow

redes - Obtenga el valor de algunos pesos en un modelo entrenado por TensorFlow



tensorflow python (2)

En TensorFlow, los pesos entrenados están representados por tf.Variable . Objetos tf.Variable . Si creó un tf.Variable llamado v— usted mismo, puede obtener su valor como una matriz NumPy llamando a sess.run(v) (donde sess es una 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 a tf.trainable_variables() . Esta función devuelve una lista de todos los objetos entrenables tf.Variable en el gráfico actual, y puede seleccionar 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]

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


Entonces, si continúa con este código paso a paso, primero obtendrá una lista de variables usadas / entrenables. Luego, podría ordenarlos en una lista donde clasifique matrices / listas de ponderación por nombres de variables, por ejemplo, cómo fue posible manejar esa información.

vars = tf.trainable_variables() print(vars) #some infos about variables... vars_vals = sess.run(vars) for var, val in zip(vars, vars_vals): print("var: {}, value: {}".format(var.name, val)) #...or sort it in a list....