y
s wrt x
s の合計の偏導関数、つまりd(y_1 + y_2 + ...)/dx_1, d(y_1 + y_2 + ...)/dx_2...
を計算する演算を追加します。
Options.dx()
値が設定されている場合、それらは損失関数L
wrt y
の初期シンボリック偏導関数となります。 Options.dx()
のサイズはy
でなければなりません。
Options.dx()
が設定されていない場合、実装はy
のすべての形状にOnesLike
の dx を使用します。
偏導関数は、サイズx
で出力dy
に返されます。
使用例:
Gradients gradients = Gradients.create(scope, Arrays.asList(loss), Arrays.asList(w, b));
Constant<Float> alpha = ops.constant(1.0f, Float.class);
ApplyGradientDescent.create(scope, w, alpha, gradients.<Float>dy(0));
ApplyGradientDescent.create(scope, b, alpha, gradients.<Float>dy(1));
ネストされたクラス
クラス | グラデーション.オプション | Gradients のオプションの属性 |
パブリックメソッド
静的グラデーション | |
静的グラデーション | create (スコープscope, Iterable<? extends Operand <?>> y, Iterable<? extends Operand <?>> x, Options... options) スコープに応じて勾配計算演算をグラフに追加します。 |
静的Gradients.Options | |
<T>出力<T> | dy (int インデックス) 勾配演算出力の 1 つにシンボリック ハンドルを返します。 警告: テンソルの型が T と一致するかどうかはチェックされません。 |
リスト<出力<?>> | ダイ() y s wrt の偏導関数 |
イテレータ<オペランド<?>> | イテレータ() |
継承されたメソッド
パブリックメソッド
public static Gradients create (スコープscope、オペランド<?> y、Iterable<? extendsオペランド<?>> x、オプション...オプション)
スコープに応じて勾配計算演算をグラフに追加します。
これはcreate(Scope, Iterable, Iterable, Options)
の簡略化されたバージョンで、 y
は単一の出力です。
パラメータ
範囲 | 現在のグラフのスコープ |
---|---|
y | 導出する関数の出力 |
× | 偏導関数が計算される関数の入力 |
オプション | オプションの属性値を持ちます |
返品
Gradients
の新しいインスタンス
投げる
IllegalArgumentException | 実行環境がグラフでない場合 |
---|
public static Gradients create (スコープscope、Iterable<? extends Operand <?>> y、Iterable<? extends Operand <?>> x、 Options... options)
スコープに応じて勾配計算演算をグラフに追加します。
パラメータ
範囲 | 現在のグラフのスコープ |
---|---|
y | 導出する関数の出力 |
× | 偏導関数が計算される関数の入力 |
オプション | オプションの属性値を持ちます |
返品
Gradients
の新しいインスタンス
投げる
IllegalArgumentException | 実行環境がグラフでない場合 |
---|
public static Gradients.Options dx (Iterable<? extends Operand <?>> dx)
パラメータ
DX | ある損失関数L wrt y の偏導関数 |
---|
返品
- ビルダーでこの操作にオプションを追加する
public出力<T> dy (int インデックス)
勾配演算出力の 1 つにシンボリック ハンドルを返します。
警告: テンソルの型が T と一致するかどうかはチェックしません。このメソッドは、たとえばgradients.<Float>dy(0)
のように推論するのではなく、明示的な型パラメーターを使用して呼び出すことをお勧めします。
パラメータ
索引 | この操作によって追加されたグラデーションのうちの出力のインデックス |
---|