如何在张量流中得到内部张量值

时间:2017-07-03 07:20:08

标签: python tensorflow

当运行tensorflow的会话时,我需要获得相同的y值。如何获得具有相同值的y,而不是重新运行此图?

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。

2 个答案:

答案 0 :(得分:0)

您可以使用sess.run()同时评估y和z,它只运行图形的所需部分一次,因此y的值将是用于z的值。

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

答案 1 :(得分:-1)

修改with块,如下所示,这样您只需在for循环之前评估图形一次,然后您可以根据需要多次打印它:

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