class chainer.UpdateRule(parent_hyperparam=None)[source]

すべての更新ルールの基底クラス。

 

UpdateRuleはオブジェクトで、Parameterを損失関数の勾配を用いて更新する方法を実装しています。このクラスは、インタフェースとすべての更新ルールの共通機能を提供しています。

更新ルールはモデルのParameter配列を表す Variable オブジェクトに設定できます。 Optimizer インスタンスはどのParameterを更新するかを定義し、各Parameterの更新ルールのインスタンスはそれをどうやって更新するか定義します。 

 

フック関数は更新ルールインスタンスに設定可能です。 このフック関数は、全ての更新の直前に登録順に呼ばれます。

 

更新ルールの実装は、  update_core() か、そのデバイス依存版(つまり update_core_cpu() や update_core_gpu())をオーバーライドすべきです。

 

この更新ルールの状態 (たとえば勾配の移動平均) はステートディクショナリに格納されます。ステートを用いた更新ルールの実装は最初の更新時にステートを初期化するために init_state() もオーバーライドすべきです。このステートディクショナリの値は、データや勾配配列に基づく更新の前に、自動的に適切なデバイスへコピーされます。 

 

Parameters:

parent_hyperparam (Hyperparameter) – デフォルト値を提供するハイパーパラメータ

Variables:
  • enabled (bool) – 更新ルールがアクティブか設定しているフラグ(i.e., enabled = False), この update() メソッドはParameterを更新しません
  • hyperparam (Hyperparameter) – 更新ルールのハイパーパラメータ
  • t (int) – 更新ルールによってなされる更新の数

 

Methods

add_hook(hook, name=None)[source]

フック関数を加える。

 

このフック関数は更新の前に呼ばれます。

Parameters:
  • hook (callable) –加えるフック関数。引数を2つとります (the update rule object と the parameter variable)
  • name (str) – フック関数の名前。デフォルトで用いられるフック関数の名前属性。 

 

init_state(param)[source]

ステートの初期化。

 

ステートを利用する全ての実装は、このメソッドをオーバーライドすべきです。このメソッドは最初に更新時に呼ばれます。

Parameters: param (Variable) – Parameter変数. shape や Parameterのデータ型抽出に用いられる。

 

remove_hook(name)[source]

Removes the specified hook function.指定したフック関数を削除する。

 

Parameters: name (str) – 削除するフック関数の名前。

 

serialize(serializer)[source]

更新ルールステートのシリアル化

 

このメソッドは更新ルールのステートの保存とロードだけを行いますので注意してください。

このメソッドでは、ターゲットリンクのパスワードは保存もロードもされません。そこで、もし、Parameterを含む訓練ステートを完全に回復したい場合には、ターゲットリンクを別々にシリアル化(直列化)する必要があります。

Parameters: serializer (AbstractSerializer) – Serializer object.

 

update(param)[source]

Invokes hook functions and updates the parameter.

フック関数を呼び、Parameterを更新する。

 

Parameters: param (Variable) – 更新されるVariable 

 

update_core(param)[source]

パラメータを更新する。

 

UpdateRuleの実装は此のメソッドか、 _update_core_cpu()_update_core_gpu()をオーバーライドすべきです。

Parameters: param (Variable) – Variable to be updated.

 

update_core_cpu(param)[source]

CPU上のParameterを更新する。

 

See update_core() for details.

Parameters: param (Variable) – 更新されるVariable

 

update_core_gpu(param)[source]

 GPU上のParameterを更新する。

 

詳細は update_core() をお読みください。

Parameters: param (Variable) –更新されるVariable 

 

Attributes

state

ステートディクショナリ(状態の辞書)