在Tensorflow中对随机变量进行的操作无法正常工作
我创建了两个Tensors
(即x1,y2),它们使用均匀分布进行了初始化,但是当我打印出结果时,它们不是我期望的。
这是我的代码:
x1 = tf.random_uniform([1], 0, 10, tf.int32)
y1 = tf.random_uniform([1], 0, 10, tf.int32)
subtraction = x1 - y1
with tf.Session() as sess:
print(sess.run(x1))
print(sess.run(y1))
print(sess.run(subtraction))
结果如下:
[6]
[2]
[0]
-
在您的代码中,
x1
和y1
是随机数生成器。每次调用时,它们采用不同的值。因此,当您致电时subtraction
,又依次致电您的数字生成器x1
和y1
,则没有理由获得与先前通话一致的结果。为了实现您的期望,请将值存储在中
Variable
:import tensorflow as tf x1 = tf.Variable(tf.random_uniform([1], 0, 10, tf.int32)) y1 = tf.Variable(tf.random_uniform([1], 0, 10, tf.int32)) subtraction = x1 - y1 with tf.Session() as sess: sess.run(tf.global_variables_initializer()) print(sess.run(x1)) print(sess.run(y1)) print(sess.run(subtraction))
另外,如果您不需要迭代之间的持久性,并且可以一次调用所有依赖于数字生成器的运算符,则将它们打包到同一调用中
sess.run
:import tensorflow as tf x1 = tf.random_uniform([1], 0, 10, tf.int32) y1 = tf.random_uniform([1], 0, 10, tf.int32) subtraction = x1 - y1 with tf.Session() as sess: print(sess.run([x1, y1, subtraction]))