[英]Operations on random variables not working properly in 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]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.