2016-11-24 45 views
2

我想生成一个随机向量,不明白tensorflows结果....Tensorflow生成随机值意外行为

代码:

import tensorflow as tf 

some_test = tf.Variable(
    tf.random_uniform([20], -1.0, 1.0, dtype=tf.float32)) 
init_op = tf.initialize_all_variables() 
sess = tf.Session() 
sess.run(init_op) 
random = sess.run(some_test) 
print(random) 

给了我这样的:

[    nan    nan    nan    nan 
       nan    nan    nan    nan 
       nan 3.57331108e-43 0.00000000e+00 0.00000000e+00 
    0.00000000e+00 0.00000000e+00 0.00000000e+00 -3.05175781e-05 
    -1.70141183e+38 -1.70141183e+38 -1.70141183e+38 -1.70141183e+38] 
+0

那么,这可能很难重现...它由我工作:P – sygi

+0

你刚刚复制这个代码,结果如预期?那么它更令人困惑... –

+0

是的。如果我是你,我会尝试提取'a = tf.random_uniform ...',看看'sess.run(a)'是否也给出了这些奇怪的结果。 – sygi

回答

2

好吧,这非常令人困惑,但是它没有起作用的原因是我并行运行了其他一些Tensorflow代码。在我停止这段代码后,随机生成按预期工作。我怀疑这是预期的行为。

如果我使用with tf.device('/cpu:0'):,即使其他代码正在运行,它也可以在我的机器上运行。当tensorflow使用GPU时,使用gpu:0会给出奇怪的数字。

此外,我试图在不同的机器上重现这一点,我不能。这意味着即使运行其他tensorflow代码(相同的代码,所有GPU等)。选择设备一切正常。