tensorflowの勾配の値を取り出したい


現在deep learningを学習中の者で、pythonのtensorflowを使用しています。

tensorflowのウリとしては、optimizerにlossを渡せば勝手に最適化してくれることですが、その最適化途中のwの値や勾配の値を、見たり取り出したりすることはできないでしょうか？

また、一般的な最適化は重みの勾配さえわかれば問題ないのですが、私はlossに対する入力の勾配を求めたいと思っています。optimizerではおそらく求めてくれないので、gradients()関数を使用すればなんとかなりそうだとは思うのですがイマイチ理解できず困っています。

よろしくお願いします。



[code]

    optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)
    grad, var = optimizer.compute_gradients(cost)
    train_op = optimizer.apply_gradients([grad, var])
    
[/code]

のようにすると grad として勾配を取り出すことができます。

