2016-04-04 11 views
2

Hallo Ich möchte VGG-Modell von Tensorflow fein tune. Ich habe zwei Fragen.Get Gewichte von Tensorflow-Modell

Wie bekomme ich die Gewichte vom Netzwerk? Die trainable_variables gibt eine leere Liste für mich zurück.

Ich benutzte existierendes Modell von hier: https://github.com/ry/tensorflow-vgg16. Ich finde die Post über Gewichte bekommen aber das funktioniert nicht für mich wegen Import_graph_def. Get the value of some weights in a model trained by TensorFlow

import tensorflow as tf 
import PIL.Image 
import numpy as np 

with open("../vgg16.tfmodel", mode='rb') as f: 
    fileContent = f.read() 

graph_def = tf.GraphDef() 
graph_def.ParseFromString(fileContent) 

images = tf.placeholder("float", [None, 224, 224, 3]) 

tf.import_graph_def(graph_def, input_map={ "images": images }) 
print("graph loaded from disk") 

graph = tf.get_default_graph() 

cat = np.asarray(PIL.Image.open('../cat224.jpg')) 
print(cat.shape) 
init = tf.initialize_all_variables() 

with tf.Session(graph=graph) as sess: 
    print(tf.trainable_variables()) 
    sess.run(init) 
+0

Versuchen Sie, mehrere Fragen gleichzeitig zu vermeiden. Wenn Sie keine Antwort auf eine der beiden Fragen finden, und Sie denken, dass beide wertvolle Fragen sind, können Sie beide in getrennten Beiträgen fragen. – Giewev

Antwort

4

Diese pretrained VGG-16 model codiert alle Modellparameter als tf.constant() ops. (Siehe zum Beispiel die Aufrufe von tf.constant()here.) Die Modellparameter würden daher nicht in tf.trainable_variables() erscheinen und das Modell ist ohne wesentliche Operation nicht veränderbar: Sie müssten die konstanten Knoten durch tf.Variable Objekte ersetzen, die mit beginnen der gleiche Wert, um weiter zu trainieren.

Im Allgemeinen sollte beim Importieren eines Diagramms für die Umschulung die Funktion tf.train.import_meta_graph() verwendet werden, da diese Funktion zusätzliche Metadaten (einschließlich der Sammlungen von Variablen) lädt. Die tf.import_graph_def()-Funktion ist eine niedrigere Ebene und füllt diese Sammlungen nicht auf.

Verwandte Themen