2

Ich möchte ein vortrainiertes tiefes neuronales Netzwerk in Tensorflow teilweise fein abstimmen (wie in, Gewichte für alle Schichten laden, aber nur Gewichtungen auf höheren Schichten aktualisieren).Feinabstimmung eines tiefen neuronalen Netzwerks in Tensorflow

Gibt es eine Methode in Tensorflow, die die Auswahl von Variablen erlaubt, die geändert werden sollten und die, die beibehalten werden sollten?

Vielen Dank im Voraus!

Antwort

6

Wenn Sie ein Optimierer (z. B. tf.train.AdagradOptimizer) zum Trainieren Ihres Modells erstellen, können Sie ein explizites var_list=[...]-Argument an die Optimizer.minimize()-Methode übergeben. (Wenn Sie diese Liste nicht angeben, enthält sie standardmäßig alle Variablen in .)

Zum Beispiel können Sie je nach Modell die Namen Ihrer Variablen verwenden, um die Liste zu definieren der zu optimierenden Variablen:

# Assuming all variables to be fine-tuned have a name that starts with 
# "layer17/". 
opt_vars = [v for v in tf.trainable_variables() if v.name.startswith("layer17/")] 

train_op = optimizer.minimize(loss, var_list=opt_vars) 
+0

Danke, das ist genau das, wonach ich gesucht habe. –

+0

Wie können wir es in TFLearn tun? –