首页 > 其他 > 详细

tf.metrics 使用过程中发现的一些问题

时间:2020-04-13 21:30:01      阅读:75      评论:0      收藏:0      [点我收藏+]

起因是看到了这么一个帖子:

http://www.cocoachina.com/cms/wap.php?action=article&id=86347

 

 

 

 

 

简短来说就是下面的代码   运行起来结果十分的怪异!!!

 

import tensorflow as tf

a = tf.constant(1.)
mean_a, mean_a_uop = tf.metrics.mean(a)
with tf.control_dependencies([mean_a_uop]):
  mean_a = tf.identity(mean_a)

sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
tf.local_variables_initializer().run()

for _ in range(10):
  print(sess.run(mean_a))

 

在CPU上运行:

技术分享图片

第一次运行结果:

技术分享图片

 

第二次运行结果:

技术分享图片

 

第三次运行结果:

技术分享图片

 

第四次运行结果:

技术分享图片

 

第五次运行结果:

技术分享图片

 

可以发现上述代码在CPU环境下运行每次结果均不太相同,而且离希望得到结果都不一样。

希望的结果为   1.0  1.0  1.0  1.0    1.0     1.0     1.0     1.0      1.0     1.0

 

 

 

 

 

 

 

在GPU上运行:

第一次结果:

技术分享图片

 

 

第二次结果

技术分享图片

 

 

第三次结果:

技术分享图片

 

 

 

第四次结果:

 

技术分享图片

 

 

第五次结果:

 

技术分享图片

可以发现上述代码在GPU环境下运行每次结果均相同,但都不是希望的结果。

希望的结果为   1.0  1.0  1.0  1.0    1.0     1.0     1.0     1.0      1.0     1.0

 

 

以上则为所引帖子中所提问题。

 

==================================================================

 

 

 

 

由上面的问题做了写尝试:

1.

import tensorflow as tf

a = tf.constant([1.0,])
mean_a, mean_a_uop = tf.metrics.mean(a)

sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
tf.local_variables_initializer().run()

for _ in range(10):
  print(sess.run([mean_a_uop, mean_a]))
print(result:--------------------)
print(sess.run(mean_a))

 

技术分享图片

最终的均值  mean_a 为1.0, 结果正确。

过程中   mean_a_uop 为全局更新操作,结果一直为1.0,结果正确。

过程中   均值  mean_a   在浮动,不一直为1.0, 结果不正确。 

 

 

 

 

 

 

2.

import tensorflow as tf
import numpy as np

a = tf.constant([1.])
mean_a, mean_a_uop = tf.metrics.mean(a)

with tf.control_dependencies([mean_a_uop]):
    op=tf.no_op()

sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
tf.local_variables_initializer().run()

for _ in range(10):
  print(sess.run([mean_a, op,mean_a_uop]))
print(result: --------------------)
print(sess.run(mean_a))

技术分享图片

最终的均值  mean_a 为1.0, 结果正确。

过程中   mean_a_uop 为全局更新操作,结果一直为1.0,结果正确。

过程中   均值  mean_a   在浮动,不一直为1.0, 结果不正确。 

 

tf.metrics 使用过程中发现的一些问题

原文:https://www.cnblogs.com/devilmaycry812839668/p/12693408.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!