我意识到每次训练时我的模型最终会变得不同,即使我保持TensorFlow随机种子一样。
我验证了:
tf.gradients(loss, train_variables)
的输出。虽然loss
和train_variables
具有相同的值,但某些变量的渐变有时不同。差异非常显着(有时单个变量的梯度的绝对差值之和大于1)。我得出结论,这是导致非确定性的梯度计算。
我查看了this question,在使用intra_op_parallelism_thread=1
和inter_op_parallelism_thread=1
的CPU上运行时问题仍然存在。
当正向传球不是时,后向传球如何是不确定的?我怎么能进一步调试呢?