2016-06-08 13 views
0

Ich möchte die Werte meiner Variablen zuweisen/ändern, indem ich sie mit ihrem Namen anrufe.Tensorflow: Variable nach Namen zuweisen

Für exemple:

vars = tf.trainable_variables() 
print(vars[1].name) 

'matrix1: 0'

upt = vars['matrix1:0'].assign_add(tf.constant(1)) 
sess.run(upt) 

Der Grund dafür ist, dass Indizes für die Variablen sind nicht zuverlässig, da sie als zu abhängig sind, wenn Sie sind im Code ausgeführt. Durch Hinzufügen einer neuen Variablen müssten alle Indizes verschoben werden, was nicht praktisch ist. Mit Namen würde mein Leben viel einfacher machen.

+1

Wie wäre es 'vars = {v.name:v für v in tf.trainable_variables()} ' –

+0

Nun, wie weisen Sie den Variablen neue Werte zu, indem Sie sie mit ihrem Namen aufrufen? – PhABC

+1

Und dann können Sie 'vars ['matrix1: 0']. Assign_add (tf.constant (1))' –

Antwort

3

Sie Python-Generator Ausdruck ein Wörterbuch wie dieses

vars={v.name:v for v in tf.trainable_variables()} 

konstruieren können und dann ändern Sie die Variable als

vars['matrix1:0'].assign_add(tf.constant(1))