Tensorflow eval() - (a/b).eval() 和 (a.eval()/b.eval()) 的不同结果

Tensorflow eval() - different results for (a/b).eval() and (a.eval()/b.eval())

我目前 运行 遇到了一个问题,即 tensorflow 没有产生我想要的结果。当我尝试调试问题时,我注意到直到一个部门,一切似乎都很好。 https://imgur.com/a/DT4RWiS

谁能告诉我这里可能发生了什么?

这是因为tensorflow中的/运算符遵循Python2语法,进行整数除法(参见https://www.tensorflow.org/api_docs/python/tf/div)。您应该改用 tf.divide。一般来说,对于张量之间的任何数学运算,您应该使用 tf.operation_name

可能涉及一些随机性。考虑以下示例:

import tensorflow as tf

a = tf.random_uniform(shape=(4,), minval=1, maxval=2)
b = tf.random_uniform(shape=(4,), minval=1, maxval=2)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(a.eval()/b.eval())
    print((a/b).eval())

a.eval()(a/b).eval()被调用时,tf.random_uniform被执行,张量a填充不同的随机数