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: |
|
Methods
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
¶
ステートディクショナリ(状態の辞書)