截图
>>> 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)30.856236
.
为什么我得到的是0.8564?我期望得到的值应该是1.2461,因为1.2461是最大的,对吗?
如果我使用tf.constant,我能得到正确答案。但使用random_normal时,我得不到正确答案
回答:
每次运行s.run()
并使用random_normal
时,boxes
都会重新生成。因此,你的三个结果是不同的。如果你想要得到一致的结果,你应该只运行一次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]10.9860319
此外,代码应该以文本格式而不是图片格式提供。