2016-12-01 2 views
5

Ich versuche, alle Variablen in einem Variablenbereich zu erhalten, wie erklärt here. Die Zeile tf.get_collection(tf.GraphKeys.VARIABLES, scope='my_scope') gibt jedoch eine leere Liste zurück, obwohl in diesem Bereich Variablen vorhanden sind.Tensorflow: tf.get_collection Nicht zurückgebende Variablen im Bereich

Hier einige Beispiel-Code:

import tensorflow as tf 

with tf.variable_scope('my_scope'): 
    a = tf.Variable(0) 
print tf.get_collection(tf.GraphKeys.VARIABLES, scope='my_scope') 

die [] druckt.

Wie bekomme ich die Variablen in 'my_scope' deklariert?

+0

als Warnung für künftige Leser, beachten Sie, dass '' name_scope' und variable_scope' sind nicht das gleiche. –

Antwort

9

Der Sammlungsname tf.GraphKeys.VARIABLES ist seit TensorFlow 0.12 veraltet. tf.GraphKeys.GLOBAL_VARIABLES verwendet, wird das erwartete Ergebnis geben:

with tf.variable_scope('my_scope'): 
    a = tf.Variable(0) 
print tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='my_scope') 
# ==> '[<tensorflow.python.ops.variables.Variable object at 0x7f33f67ebbd0>]' 
+0

Einige ablehnen Nachricht während der Ausführung wäre nett:) – Bily

+0

für mich, das immer noch nicht funktioniert. Muss ich die Grafik irgendwo oder in der Art weitergeben? –

+0

Ich habe versucht, das Graph-Objekt selbst direkt zu verwenden und habe nicht funktioniert: 'graph.get_collection (name = 'scope_name')'. Irgendeine Idee was ist falsch? –

Verwandte Themen