2017-10-04 3 views
0

I erstellen Variable in TensorFlow:Wie ändert man den Wert einer Variablen in TensorFlow?

c = tf.Variable([1.0, 2.0, 3.0], tf.float32) 

Dann definiere ich einen Platzhalter:

x = tf.placeholder(tf.float32) 

Danach I eine Funktion (Berechnungsgraphen) definieren die beiden oben definierten Objekte kombiniert:

y = x + c 

Danach "initialisiere" ich die globalen Variablen:

Schließlich
s = tf.Session() 
init = tf.global_variables_initializer() 
s.run(init) 

, kann ich meine Funktion ausführen:

s.run(y, {x : [10.0, 20.0, 30.0]}) 

Nun, ich möchte den Wert von c ändern. Ist es in TensorFlow möglich? Ich habe versucht, zum Beispiel:

c = tf.assign(c, [1.0, 1.0, 1.0]) 

und auch:

c = tf.Variable([1.0, 1.0, 1.0], tf.float32) 

Nichts funktioniert. Immer, wenn ich

s.run(y, {x : [10.0, 20.0, 30.0]}) 

nenne ich immer noch das alte Ergebnis (entsprechend den alten/Anfangswert von c).

Also, wie ordne ich einen neuen Wert zu einer globalen Variablen in TensorFlow?

Antwort

1

Nachdem Sie einen neuen Wert in die Variable c mit einem der Methoden zuweisen Sie verwenden, müssen Sie auswerten:

c.eval(session=s) 

oder

s.run(c) 
1

Nach neuen Werten der Variable ‚c‘ zuweisen, haben Sie Session initialisieren neue Werte zu machen,

c = tf.assign(c, [1.0, 1.0, 1.0]) 
s.run(c) 
s.run(y, {x : [10.0, 20.0, 30.0]}) 
array([ 11., 21., 31.], dtype=float32) 
Verwandte Themen