我创建了两个张量(即: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
是随机数生成器。每次调用它们时,它们都会采用不同的值。因此,当您调用减法
(减法又调用您的数字生成器x1
和y1
)时,没有理由获得与之前一致的结果来电。
要实现您想要的目标,请将值存储在变量
中:
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]))
关于python - 随机变量的运算在 Tensorflow 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44129480/