如何解决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 举报,一经查实,本站将立刻删除。