非确定性梯度计算

时间:2017-02-23 10:10:56

标签: tensorflow non-deterministic

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

我验证了:

  • 初始化是确定性的;在第一次更新之前,权重是相同的。
  • 输入是确定性的。实际上,包括损失在内的各种正向计算在第一批中都是相同的。
  • 第一批的渐变是不同的。具体来说,我正在比较tf.gradients(loss, train_variables)的输出。虽然losstrain_variables具有相同的值,但某些变量的渐变有时不同。差异非常显着(有时单个变量的梯度的绝对差值之和大于1)。

我得出结论,这是导致非确定性的梯度计算。 我查看了this question,在使用intra_op_parallelism_thread=1inter_op_parallelism_thread=1的CPU上运行时问题仍然存在。

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

0 个答案:

没有答案