2016-12-15 7 views
0

opt.apply_gradientがどのように勾配を使用するか説明できますか?時々私は訓練の前と訓練後の体重の違いが単に勾配ではないことを発見しました。opt.compute gradients()はopt.apply勾配の重さの差とは異なります。

+0

のステップの実装を見ることができますか? Ony 'tf.GradientDescentOptimizer'は、現在の勾配に比例するステップを作成します。 – sygi

+0

GradientDescentOptimizerですが、現在のグラデーションに比例していないことがわかります – Andy

答えて

0

GradientDescentOptimizerでは同じで、他のオプティマイザでは異なるはずです。

あなたは、あなたが使用しないオプティマイザkernels/training_ops.cc

struct ApplyGradientDescent<CPUDevice, T> { 
    void operator()(const CPUDevice& d, typename TTypes<T>::Flat var, 
        typename TTypes<T>::ConstScalar lr, 
        typename TTypes<T>::ConstFlat grad) { 
    var.device(d) -= grad * lr(); 
    } 
関連する問題