2017-05-23 52 views
1

我創建了兩個使用均勻分佈初始化的Tensors(即:x1,y2),但是當我打印出結果時,它們不是我所期望的。在Tensorflow中運行不正常

這是我的代碼:

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]

回答

2

在你的代碼中,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]))