入力Variableについて、その出力Variableの勾配を計算する
この関数はバックプロパゲーション(誤差逆伝播法)のアルゴリズムを実装しています。 Variable.backward() もバックプロパゲーションを実装していますが、 この関数は入力の勾配を計算するのに必要な計算グラフにおいて最小経路を選択します。誤差は、これらお選択された経路を通してのみ、逆伝搬されます。これは、全体の演算コストを減少させる可能性があります。
この関数は勾配を返す方法も、Variable.backward() と異なります。この関数は、元のVariableのVariable.grad_var属性に勾配をセットする代わりに、勾配変数をリストとして直接返します。つまり、ユーザはこの関数を使って勾配計算をする前に、各Variableの勾配をクリアする必要がありません。set_grad option に Trueが設定されている場合、計算された勾配も各Variableの Variable.grad_var 属性に格納されます。その場合、Variable.grad_varの元々設定されていた値は、それが既に設定されている場合でも、必ず更新されます。
Parameters: |
|
---|---|
Returns: |
入力の勾配変数のリスト |