屏幕截图
>>> boxes = tf.random_normal([ 5])
>>> with s.as_default():
... s.run(boxes)
... s.run(keras.backend.argmax(boxes,axis=0))
... s.run(tf.reduce_max(boxes,axis=0))
...
array([ 0.37312034, -0.97431135, 0.44504794, 0.35789603, 1.2461706 ],
dtype=float32)
3
0.856236
。
为什么我会得到0.8564。我希望该值为1.2461。因为1.2461是big.right?
I am getting correct answer if i use tf.constant.
But I am not getting correct answer while using radom_normal
答案 0 :(得分:0)
每次使用boxes
运行s.run()
时,都会重新生成新的radom_normal
。因此,您的三个结果是不同的。如果要获得一致的结果,则应该只运行一次s.run()
。
result = s.run([boxes,keras.backend.argmax(boxes,axis=0),tf.reduce_sum(boxes,axis=0)])
print(result[0])
print(result[1])
print(result[2])
#print
[ 0.69957364 1.3192859 -0.6662426 -0.5895929 0.22300807]
1
0.9860319
此外,代码应以文本格式而不是图片格式给出。
答案 1 :(得分:0)
TensorFlow与numpy不同,因为TF仅使用符号运算。这意味着当实例化random_normal
时,您不会得到数值,而是得到符号正态分布,因此每次对其进行评估时,都会得到不同的数字。
每次使用此分发版进行操作时,进行任何其他操作时,您都会得到不同的数字,这将说明您看到的结果。