我正在尝试将以纯python编码的强化学习脚本改编为tensorflow。
我设计了它,当我开始对其进行采样时,在正向传播中(对于第一个样本)获得了完全相同的值,但随后反向传播和梯度值却不相同(甚至不接近)。
我认为这与通过RELU非线性进行反向传播有关,但是我不确定。
逐步了解网络体系结构的最简单方法是什么?
最佳答案
一种方法是打印反向传播梯度的值:
optimizer = tf.train.AdamOptimizer()
variables = tf.trainable_variables()
gradients = optimizer.compute_gradients(cost, variables)
然后,您可以将其传递给
sess.run
函数来检查计算出的梯度的值