2017-07-03 85 views
0

當tensorflow的會話運行時,我需要得到相同的y值。我該如何獲得具有相同價值的y,而不是重新運行此圖?如何獲得tensorflow中的內部張量值

import tensorflow as tf 
import numpy as np 

x = tf.Variable(0.0) 
tf.set_random_seed(10) 
x_plus1 = x+tf.random_normal([1], mean=0.0, stddev=0.01,dtype=tf.float32) 

y = tf.Variable([1.0]) 
y += x_plus1 

z = y + tf.random_normal([1], mean=0.0, stddev=0.01,dtype=tf.float32) 

init = tf.global_variables_initializer() 

with tf.Session() as sess: 
    sess.run(init) 
    print(z.eval()) 
    for i in range(5): 
     print(y.eval()) 

在這裏,我想得到y有助於z。

回答

-1

修改with塊如下,這樣你只有一次評估圖表中,for循環之前,那麼你就可以打印多次,只要你喜歡:

with tf.Session() as sess: 
    sess.run(init) 
    print(z.eval()) 
    yy = y.eval() 
    for i in range(5): 
     print(yy) 
+0

在我看來,我想在z運行時得到y。 –

0

您可以評估y和z與sess.run()同時運行,它只運行一次圖形的所需部分,因此y的值將是用於z的值。

with tf.Session() as sess: 
    sess.run(init) 
    z_value, y_value = sess.run([z, y]) 
    print(z_value) 
    print(y_value)