当前位置:  开发笔记 > 人工智能 > 正文

非确定性梯度计算

如何解决《非确定性梯度计算》经验,为你挑选了0个好方法。

我意识到每次训练时我的模型最终会变得不同,即使我保持TensorFlow随机种子相同.

我证实了这一点:

初始化是确定性的; 在第一次更新之前,权重是相同的.

输入是确定性的.事实上,包括损失在内的各种正向计算在第一批中是相同的.

第一批的渐变是不同的.具体来说,我正在比较的输出tf.gradients(loss, train_variables).虽然loss并且train_variables具有相同的值,但是对于一些变量,梯度有时是不同的.差异非常显着(有时单个变量的梯度的绝对差值之和大于1).

我得出结论,这是导致非确定性的梯度计算.我看了一下这个问题,当用intra_op_parallelism_thread=1和运行CPU时问题仍然存在inter_op_parallelism_thread=1.

当前向传球不是时,后向传球如何是不确定的?我怎么能进一步调试呢?

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有