0
opt.apply_gradientがどのように勾配を使用するか説明できますか?時々私は訓練の前と訓練後の体重の違いが単に勾配ではないことを発見しました。opt.compute gradients()はopt.apply勾配の重さの差とは異なります。
opt.apply_gradientがどのように勾配を使用するか説明できますか?時々私は訓練の前と訓練後の体重の違いが単に勾配ではないことを発見しました。opt.compute gradients()はopt.apply勾配の重さの差とは異なります。
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();
}
のステップの実装を見ることができますか? Ony 'tf.GradientDescentOptimizer'は、現在の勾配に比例するステップを作成します。 – sygi
GradientDescentOptimizerですが、現在のグラデーションに比例していないことがわかります – Andy