簡體   English   中英

在Tensorflow中對隨機變量進行的操作無法正常工作

[英]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]

在您的代碼中, x1y1是隨機數生成器。 每次調用時,它們采用不同的值。 因此,當您調用subtraction ,又調用了數字生成器x1y1 ,則沒有理由獲得與先前調用一致的結果。

為了實現您的期望,請將值存儲在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM