Ftrl-proximal スキームに従って、「*var」内の関連エントリを更新します。
つまり、grad がある行については、var、accum、linear を次のように更新します。 grad_with_shrinkage = grad + 2 * l2_shrinkage * var accum_new = accum + grad * grad Linear += grad_with_shrinkage - (accum_new^(-lr_power) - accum^ (-lr_power)) / lr * var 二次 = 1.0 / (accum_new^(lr_power) * lr) + 2 * l2 var = (sign(linear) * l1 - 線形) / 二次 if |linear| > l1 else 0.0 accum = accum_new
ネストされたクラス
クラス | SparseApplyFtrl.Options | SparseApplyFtrl のオプションの属性 |
定数
弦 | OP_NAME | TensorFlow コア エンジンによって認識される、この演算の名前 |
パブリックメソッド
出力<T> | asOutput () テンソルのシンボリック ハンドルを返します。 |
static <T extends TType > SparseApplyFtrl <T> | |
静的SparseApplyFtrl.Options | multiplyLinearByLr (ブール値 multiplyLinearByLr) |
出力<T> | 外() 「var」と同じです。 |
静的SparseApplyFtrl.Options | useLocking (ブール型 useLocking) |
継承されたメソッド
定数
パブリック静的最終文字列OP_NAME
TensorFlow コア エンジンによって認識される、この演算の名前
パブリックメソッド
public Output <T> asOutput ()
テンソルのシンボリック ハンドルを返します。
TensorFlow オペレーションへの入力は、別の TensorFlow オペレーションの出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。
public static SparseApplyFtrl <T> create ( Scopescope , Operand <T> var, Operand <T> accum, Operand <T> Linear, Operand <T> grad, Operand <? extends TNumber > indices, Operand <T> lr, Operand <T> l1、オペランド<T> l2、オペランド<T> l2Shrinkage、オペランド<T> lrPower、オプション...オプション)
新しい SparseApplyFtrl オペレーションをラップするクラスを作成するためのファクトリ メソッド。
パラメーター
範囲 | 現在のスコープ |
---|---|
変数 | Variable() から取得する必要があります。 |
蓄積 | Variable() から取得する必要があります。 |
線形 | Variable() から取得する必要があります。 |
卒業生 | グラデーション。 |
インデックス | var と accum の最初の次元へのインデックスのベクトル。 |
lr | スケーリング係数。スカラーでなければなりません。 |
l1 | L1 正則化。スカラーでなければなりません。 |
l2 | L2 収縮の正則化。スカラーでなければなりません。 |
lrパワー | スケーリング係数。スカラーでなければなりません。 |
オプション | オプションの属性値を持ちます |
戻り値
- SparseApplyFtrl の新しいインスタンス
public static SparseApplyFtrl.Options useLocking (Boolean useLocking)
パラメーター
使用ロック | 「True」の場合、var テンソルと accum テンソルの更新はロックによって保護されます。それ以外の場合、動作は未定義ですが、競合が少なくなる可能性があります。 |
---|