Prima di tutto è possibile assegnare valori alle variabili/costanti solo alimentando i valori in loro allo stesso modo lo si fa con i segnaposto. Quindi questo è perfettamente legale per fare:
import tensorflow as tf
x = tf.Variable(0)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print sess.run(x, feed_dict={x: 3})
Per quanto riguarda la vostra confusione con l'operatore tf.assign(). In TF non viene eseguito nulla prima di eseguirlo all'interno della sessione. Quindi devi sempre fare qualcosa di simile a questo: op_name = tf.some_function_that_create_op(params)
e quindi all'interno della sessione esegui sess.run(op_name)
. Usando assegnare a titolo di esempio si farà qualcosa di simile:
import tensorflow as tf
x = tf.Variable(0)
y = tf.assign(x, 1)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print sess.run(x)
print sess.run(y)
print sess.run(x)
fonte
2017-04-24 05:33:53
Grazie! assign_op.run() restituisce un errore: AttributeError: l'oggetto 'Tensor' non ha attributo 'run'. Ma sess.run (assign_op) funziona perfettamente bene. – abora
In questo esempio, i dati che la 'Variabile'' x' memorizzata in memoria prima dell'operazione 'assign'/tensore mutabile è stata eseguita sovrascritta o è un nuovo tensore creato che memorizza il valore aggiornato? – dannygoldstein
L'attuale implementazione di 'assign()' sovrascrive il valore esistente. – mrry