Solvers

nnabla.solvers.Solver クラスは、計算グラフのパラメータを最適化するための確率的勾配降下法ベースのオプティマイザーを表します。NNabla は、以下にリストされた様々な solver を提供します。

Solver

class nnabla.solvers.Solver

Solver インターフェイスクラス。

このクラスに提供される同じ API を使用して、様々な種類の solver を実装できます。

例:

# Network building comes above
import nnabla.solvers as S
solver = S.Sgd(lr=1e-3)
solver.set_parameters(nn.get_parameters())

for itr in range(num_itr):
    x.d = ... # set data
    t.d = ... # set label
    loss.forward()
    solver.zero_grad()  # All gradient buffer being 0
    loss.backward()
    solver.weight_decay(decay_rate)  # Apply weight decay
    solver.clip_grad_by_norm(clip_norm)  # Apply clip grad by norm
    solver.update()  # updating parameters

注釈

NNable で提供される全ての solver は、 Solver の継承クラスに属します。solver は、このクラス自体からインスタンス化されることはありません。

check_inf_grad(self, pre_hook=None, post_hook=None)

設定された勾配に inf があるかを確認します。

check_inf_or_nan_grad(self, pre_hook=None, post_hook=None)

設定された勾配に inf または nan があるかを確認します。

check_nan_grad(self, pre_hook=None, post_hook=None)

設定された勾配に nan があるかを確認します。

clear_parameters(self)

登録されているすべてのパラメータと状態をクリアします。

clip_grad_by_norm(self, float clip_norm, pre_hook=None, post_hook=None)

ノルムにより勾配をクリッピングします。この関数が呼び出されると、指定されたノルムで勾配をクリッピングします。

パラメータ

clip_norm (float) -- クリッピングノルムの値。

get_parameters(self)

登録されている全てのパラメータを取得します。

get_states(self)

全ての状態を取得します。

info

オブジェクト

info

learning_rate(self)

学習率を取得します。

load_states(self, path)

solver の状態を読み込みます。

パラメータ

path -- 読み込む state ファイルへのパス。

name

solver の名前を取得します。

remove_parameters(self, vector[string] keys)

keys の vector で指定された、登録済みのパラメータを削除します。

save_states(self, path)

solver の状態を保存します。

パラメータ

path -- パスまたはファイルオブジェクト。

scale_grad(self, scale, pre_hook=None, post_hook=None)

勾配のスケールを定数倍にします。

set_learning_rate(self, learning_rate)

学習率を設定します。

set_parameters(self, param_dict, bool reset=True, bool retain_state=False)

辞書で指定されたキーとパラメータ Variable でパラメータを設定します。

パラメータ
  • param_dict (dict) -- キー: 文字列, 値: Variable。

  • reset (bool) -- true の場合、パラメータを設定する前に、全てのパラメータをクリアします。false の場合、パラメータは上書きされるか、(新しい場合は) 追加されます 。

  • retain_state (bool) -- この値は、reset が false の場合のみ考慮されます。 この値が true 、かつキーが既に存在する場合 ( 上書き ) 、キーに関連付けられた状態 ( モメンタムなど ) は、パラメータの形状と新しいパラメータの形状が一致する場合に保持されます。

set_states(self, states)

状態を設定します。 set_parameters を呼び出し、最初に solver の状態を初期化してください。それを行わずにこのメソッドを呼び出すと、値エラーが発生します。

set_states_from_protobuf(self, optimizer_proto)

protobuf ファイルから solver に状態を設定します。

内部的に使用される helper メソッド。

set_states_to_protobuf(self, optimizer)

Optimizer から protobuf ファイルに状態を保存します。

内部的に使用される helper メソッド。

setup(self, params)

非推奨です。 param_dictset_parameters を呼び出してください。

update(self, update_pre_hook=None, update_post_hook=None)

この関数を呼び出すと、パラメータ値は、パラメータ Variablegrad に保存されている backpropagation で蓄積された勾配を使用して更新されます。更新ルールは、Solver の派生クラスにおいて C++ コアで実装されています。更新されたパラメータ値は、パラメータ Variable の data フィールドに保存されます。

パラメータ
  • update_pre_hook (callable) -- This callable object is called immediately before each update of parameters. The default is None.

  • update_post_hook (callable) -- This callable object is called immediately after each update of parameters. The default is None.

weight_decay(self, float decay_rate, pre_hook=None, post_hook=None)

勾配に、weight decay を適用します。これが呼ばれると、現在のパラメータ値の一定割合の分だけ勾配が減衰します。

パラメータ

decay_rate (float) -- weight decay の係数。

zero_grad(self)

登録されている全てのパラメータの勾配をゼロで初期化します。

Solver のリスト

nnabla.solvers.Sgd(lr=0.001)

確率的勾配降下法(SGD)オプティマイザー。

\[w_{t+1} \leftarrow w_t - \eta \Delta w_t\]
パラメータ

lr (float) -- 学習率 (\(\eta\))。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

nnabla.solvers.Momentum(lr=0.001, momentum=0.9)

モメンタムを使った SGD。

\[\begin{split}v_t &\leftarrow \gamma v_{t-1} + \eta \Delta w_t\\ w_{t+1} &\leftarrow w_t - v_t\end{split}\]
パラメータ
  • lr (float) -- 学習率 (\(\eta\))。

  • momentum (float) -- モメンタムの減衰率。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.Lars(lr=0.001, momentum=0.9, coefficient=0.001, eps=1e-06)

モメンタムを使った LARS。

\[\begin{split}\lambda &\leftarrow \eta \frac{\| w_t \|}{\| \Delta w_t + \beta w_t \|} \\ v_{t+1} &\leftarrow m v_t + \gamma \lambda (\Delta w_t + \beta w_t) \\ w_{t+1} &\leftarrow w_t - v_{t+1}\end{split}\]
パラメータ
  • lr (float) -- 学習率 (\(\eta\))。

  • momentum (float) -- モメンタムの減衰率。

  • coefficient (float) -- Trust 係数。

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\))。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.Nesterov(lr=0.001, momentum=0.9)

Nesterov 加速勾配オプティマイザー。

\[\begin{split}v_t &\leftarrow \gamma v_{t-1} - \eta \Delta w_t\\ w_{t+1} &\leftarrow w_t - \gamma v_{t-1} + \left(1 + \gamma \right) v_t\end{split}\]
パラメータ
  • lr (float) -- 学習率 (\(\eta\))。

  • momentum (float) -- モメンタムの減衰率。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

  • Yurii Nesterov. A method for unconstrained convex minimization problem with the rate of convergence \(o(1/k2)\).

nnabla.solvers.Adadelta(lr=1.0, decay=0.95, eps=1e-06)

AdaDelta オプティマイザー。

\[\begin{split}g_t &\leftarrow \Delta w_t\\ v_t &\leftarrow - \frac{RMS \left[ v_t \right]_{t-1}} {RMS \left[ g \right]_t}g_t\\ w_{t+1} &\leftarrow w_t + \eta v_t\end{split}\]
パラメータ
  • lr (float) -- 学習率 (\(\eta\))。

  • decay (float) -- 減衰率 (\(\gamma\))。

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\))。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.Adagrad(lr=0.01, eps=1e-08)

ADAGrad オプティマイザー。

\[\begin{split}g_t &\leftarrow \Delta w_t\\ G_t &\leftarrow G_{t-1} + g_t^2\\ w_{t+1} &\leftarrow w_t - \frac{\eta}{\sqrt{G_t} + \epsilon} g_t\end{split}\]
パラメータ
  • lr (float) -- 学習率 (\(\eta\))。

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\))。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.AdaBelief(alpha=0.001, beta1=0.9, beta2=0.999, eps=1e-08, wd=0.0, amsgrad=False, weight_decouple=False, fixed_decay=False, rectify=False)

AdaBelief optimizer.

\[\begin{split}m_t &\leftarrow \beta_1 m_{t-1} + (1 - \beta_1) g_t\\ s_t &\leftarrow \beta_2 s_{t-1} + (1 - \beta_2) (g_t - m_t)^2\\ w_{t+1} &\leftarrow w_t - \alpha \frac{\sqrt{1 - \beta_2^t}}{1 - \beta_1^t} \frac{m_t}{\sqrt{s_t + \epsilon} + \epsilon}\end{split}\]
パラメータ
  • alpha (float) -- ステップサイズ (\(\alpha\))。

  • beta1 (float) -- 一次モメンタムの減衰率 (\(\beta_1\))。

  • beta2 (float) -- 二次モメンタムの減衰率 (\(\beta_2\))。

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\))。

  • wd (float) -- Weight decay rate. This option only takes effect when weight_decouple option is enabled.

  • amsgrad (bool) -- Perform AMSGrad variant of AdaBelief.

  • weight_decouple (bool) -- Perform decoupled weight decay as in AdamW.

  • fixed_decay (bool) -- If True, the weight decay ratio will be kept fixed. Note that this option only takes effect when weight_decouple option is enabled.

  • rectify (bool) -- Perform RAdam variant of AdaBelief.

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.RMSprop(lr=0.001, decay=0.9, eps=1e-08)

RMSprop オプティマイザー (Geoffery Hinton) 。

\[\begin{split}g_t &\leftarrow \Delta w_t\\ v_t &\leftarrow \gamma v_{t-1} + \left(1 - \gamma \right) g_t^2\\ w_{t+1} &\leftarrow w_t - \eta \frac{g_t}{\sqrt{v_t} + \epsilon}\end{split}\]
パラメータ
  • lr (float) -- 学習率 (\(\eta\))。

  • decay (float) -- 減衰率 (\(\gamma\))。

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\))。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.RMSpropGraves(lr=0.0001, decay=0.95, momentum=0.9, eps=0.0001)

RMSpropGraves optimizer (Alex Graves).

\[\begin{split}n_t &\leftarrow \rho n_{t-1} + \left(1 - \rho \right) {e_t}^2\\ g_t &\leftarrow \rho g_{t-1} + \left(1 - \rho \right) e_t\\ d_t &\leftarrow \beta d_{t-1} - \eta \frac{e_t}{\sqrt{n_t - {g_t}^2 + \epsilon}}\\ w_{t+1} &\leftarrow w_t + d_t\end{split}\]

where \(e_t\) denotes the gradient.

パラメータ
  • lr (float) -- 学習率 (\(\eta\))。

  • decay (float) -- Decay rate (\(\rho\)).

  • momentum (float) -- Momentum (\(\beta\))

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\))。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.Adam(alpha=0.001, beta1=0.9, beta2=0.999, eps=1e-08)

ADAM オプティマイザー。

\[\begin{split}m_t &\leftarrow \beta_1 m_{t-1} + (1 - \beta_1) g_t\\ v_t &\leftarrow \beta_2 v_{t-1} + (1 - \beta_2) g_t^2\\ w_{t+1} &\leftarrow w_t - \alpha \frac{\sqrt{1 - \beta_2^t}}{1 - \beta_1^t} \frac{m_t}{\sqrt{v_t} + \epsilon}\end{split}\]

\(g_t\) は勾配を示し、 \(m_0 \leftarrow 0\) および \(v_0 \leftarrow 0\) とする。

パラメータ
  • alpha (float) -- ステップサイズ (\(\alpha\))。

  • beta1 (float) -- 一次モメンタムの減衰率 (\(\beta_1\))。

  • beta2 (float) -- 二次モメンタムの減衰率 (\(\beta_2\))。

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\))。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.AdaBound(alpha=0.001, beta1=0.9, beta2=0.999, eps=1e-08, final_lr=0.1, gamma=0.001)

AdaBound オプティマイザーは、Adam に学習率の上限と下限を動的を適用します。

\[\begin{split}w_{t+1} &\leftarrow w_t - \eta_t*m_t\\ \eta_t = clip( \alpha\frac{\sqrt{1 - \beta_2^t}}{(1 - \beta_1^t)(\sqrt{v_t} + \epsilon)}, \eta_l(t), \eta_u(t))\\ \eta_l(t) = (1 - (1/((1-\gamma)t+1)))\alpha^*\\ \eta_u(t) = (1 + (1/((1-\gamma)t)))\alpha^*\end{split}\]

学習率のスケジューリングが \(\alpha\) と \(\alpha^*\) の両方に適切に適用されるように、 \(\alpha\) の現在の値 ( set_learning_rate(lr) により設定) を \(\alpha\) の初期値で割った値を用いて \(\alpha^*\) (final_lr) がスケーリングされます。

パラメータ
  • alpha (float) -- ステップサイズ (\(\alpha\))。

  • beta1 (float) -- 一次モメンタムの減衰率 (\(\beta_1\))。

  • beta2 (float) -- 二次モメンタムの減衰率 (\(\beta_2\))。

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\))。

  • final_lr (float) -- 最終的な (SGD) 学習率。

  • gamma (float) -- bound 関数の収束速度。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.Adamax(alpha=0.002, beta1=0.9, beta2=0.999, eps=1e-08)

ADAMAX オプティマイザー。

\[\begin{split}m_t &\leftarrow \beta_1 m_{t-1} + (1 - \beta_1) g_t\\ v_t &\leftarrow \max\left(\beta_2 v_{t-1}, |g_t|\right)\\ w_{t+1} &\leftarrow w_t - \alpha \frac{\sqrt{1 - \beta_2^t}}{1 - \beta_1^t} \frac{m_t}{v_t + \epsilon}\end{split}\]

\(g_t\) が勾配を示し、 \(m_0 \leftarrow 0\) および \(v_0 \leftarrow 0\) とすると、 \(v_t\) は一連の勾配 \(t=0,...,t\) の指数関数的に重み付けされた無限大ノルムになります。

パラメータ
  • alpha (float) -- ステップサイズ (\(\alpha\))。

  • beta1 (float) -- 一次モメンタムの減衰率 (\(\beta_1\))。

  • beta2 (float) -- 二次モメンタムの減衰率 (\(\beta_2\))。

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\))。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.AMSGRAD(alpha=0.001, beta1=0.9, beta2=0.999, eps=1e-08, bias_correction=False)

AMSGRAD オプティマイザー。

\[\begin{split}m_t &\leftarrow \beta_1 m_{t-1} + (1 - \beta_1) g_t\\ v_t &\leftarrow \beta_2 v_{t-1} + (1 - \beta_2) g_t^2\\ \hat{v_t} = \max(\hat{v_{t-1}}, v_t)\\ w_{t+1} &\leftarrow w_t - \alpha \frac{m_t}{\sqrt{\hat{v_t}} + \epsilon}\end{split}\]

\(g_t\) は勾配を示し、 \(m_0 \leftarrow 0\) および \(v_0 \leftarrow 0\) とする。

パラメータ
  • alpha (float) -- ステップサイズ (\(\alpha\))。

  • beta1 (float) -- 一次モメンタムの減衰率 (\(\beta_1\))。

  • beta2 (float) -- 二次モメンタムの減衰率 (\(\beta_2\))。

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\)) 。 注意 こちらは論文には記載されていません。

  • bias_correction (bool) -- ADAM で定義された移動平均にバイアス補正を適用します。注意 こちらは論文には記載されていません。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.AMSBound(alpha=0.001, beta1=0.9, beta2=0.999, eps=1e-08, final_lr=0.1, gamma=0.001, bias_correction=False)

AMSBound オプティマイザーは AMSGrad に対して学習率の上限と下限を動的に適用します。

\[\begin{split}w_{t+1} &\leftarrow w_t - \eta_t*m_t\\ \eta_t = clip( \alpha\frac{\sqrt{1 - \beta_2^t}}{(1 - \beta_1^t)(\sqrt{\hat{v_t}} + \epsilon)}, \eta_l(t), \eta_u(t))\\ \hat{v_t} = \max(\hat{v_{t-1}}, v_t)\\ \eta_l(t) = (1 - (1/((1-\gamma)t+1)))\alpha^*\\ \eta_u(t) = (1 + (1/((1-\gamma)t)))\alpha^*\end{split}\]

学習率のスケジューリングが \(\alpha\) と \(\alpha^*\) の両方に適切に適用されるように、 \(\alpha\) の現在の値 ( set_learning_rate(lr) により設定) を \(\alpha\) の初期値で割った値を用いて \(\alpha^*\) (final_lr) がスケーリングされます。

パラメータ
  • alpha (float) -- ステップサイズ (\(\alpha\))。

  • beta1 (float) -- 一次モメンタムの減衰率 (\(\beta_1\))。

  • beta2 (float) -- 二次モメンタムの減衰率 (\(\beta_2\))。

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\)) 。 注意 こちらは論文には記載されていません。

  • final_lr (float) -- 最終的な (SGD) 学習率。

  • gamma (float) -- bound 関数の収束速度。

  • bias_correction (bool) -- ADAM で定義された移動平均にバイアス補正を適用します。注意 こちらは論文には記載されていません。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.AdamW(alpha=0.001, beta1=0.9, beta2=0.999, eps=1e-08, wd=0.0001)

減結合 weight decay を使ったADAM オプティマイザー。

\[\begin{split}m_t &\leftarrow \beta_1 m_{t-1} + (1 - \beta_1) g_t\\ v_t &\leftarrow \beta_2 v_{t-1} + (1 - \beta_2) g_t^2\\ w_{t+1} &\leftarrow w_t - \alpha \frac{\sqrt{1 - \beta_2^t}}{1 - \beta_1^t} \frac{m_t}{\sqrt{v_t} + \epsilon} - \eta_t\lambda w_t\end{split}\]

ここでは、 \(g_t\) は勾配を示し、 \(\lambda\) は減結合 weight decay 率、 \(m_0 \leftarrow 0\) および \(v_0 \leftarrow 0\) です。

パラメータ
  • alpha (float) -- ステップサイズ (\(\alpha\))。

  • beta1 (float) -- 一次モメンタムの減衰率 (\(\beta_1\))。

  • beta2 (float) -- 二次モメンタムの減衰率 (\(\beta_2\))。

  • eps (float) -- ゼロ除算を回避するための小さな値 (\(\epsilon\))。

  • wd (float) -- Weight decay 率。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照

nnabla.solvers.SgdW(lr=0.001, momentum=0.9, wd=0.0001)

減結合 weight decay を使ったStochastic gradient descent (SGD) オプティマイザー。

\[\begin{split}v_t \leftarrow \gamma v_{t-1} + \eta g_t - (\eta / \eta_0)\lambda v_{t-1}\\ w_{t+1} \leftarrow w_t - v_t\end{split}\]

ここでは、 \(\lambda\) は減結合 weight decay 率です。

パラメータ
  • lr (float) -- 学習率 (\(\eta\))。

  • momentum (float) -- モメンタムの減衰率。

  • wd (float) -- Weight decay 率。

戻り値

Solver クラスのインスタンス。 詳しくは Solver API ガイドを参照してください。

戻り値の型

Solver

注釈

コンテキスト を指定して、指定されたタイプの Solver の優先ターゲット実装(CUDA など)をインスタンス化できます。 コンテキスト は nnabla.set_default_context(ctx) または nnabla.context_scope(ctx) で設定できます。API ドキュメントを参照してください。

参照