微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

tf.random.normal无法正常工作

如何解决tf.random.normal无法正常工作

我是Python和tensorflow的新手。我有些(或很多)感到困惑:tf.random.normal()似乎没有按预期工作。

tf.random.normal()用于生成一些数据。我想看到通过“ tf.keras.backend.eval()”在屏幕上打印出来的数据是否按预期生成

randndata = tf.random.normal([1,5])
print('randndata = ',tf.keras.backend.eval(randndata))

到目前为止,一切似乎都还不错。但是,如果第二次打印数据,结果将完全不同。

randndata = tf.random.normal([1,tf.keras.backend.eval(randndata))
print('randndata = ',tf.keras.backend.eval(randndata))

问题不仅仅在于正态分布。均匀分布有相同的问题。

tensorflow版本是2.1.0。

谢谢!

解决方法

加里,我能够通过禁用急切的执行来重现您的错误。在这种情况下,每次您运行tf.random.normal时都会调用eval。 渴望执行时,随机数会立即分配给变量,然后将它们传递给tf.keras.backend.eval()调用。

查找可能禁用了急切执行的位置-这将解释令人困惑的情况。如有疑问,请在此处发布更多代码。

我建议在执行时使用TF2样式,不要完全调用eval(如果您有一些复杂的计算图,请不要调用它一次)。 了解更多关于急切执行here

的信息

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。