2016-11-18 65 views
2

我想修改一個在純python中編碼爲tensorflow的強化學習腳本。檢查反向傳播梯度

我設計了它,當我開始通過它進行採樣時,我在前向傳播(對於第一個採樣)中獲得了完全相同的值,但後向傳播和梯度值不相同(甚至不是接近)。

我在想,它通過RELU非線性與backprop有關,但後來我不完全確定。

什麼是一步一步反向傳播網絡體系結構的最簡單方法?

回答

3

一種方法是打印的反向傳播的梯度值:

optimizer = tf.train.AdamOptimizer() 
variables = tf.trainable_variables() 
gradients = optimizer.compute_gradients(cost, variables) 

然後,您可以通過它們傳遞給sess.run功能檢查計算梯度值