我创建了两个使用均匀分布初始化的张量(即: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]))
