chainer.training.
Extension
[source]¶
Trainer Extensionの基底クラス
Trainer
のExtensionは呼び出し可能なオブジェクトで、引数としてTrainerオブジェクトをとります。
また、属性として、デフォルトのトリガ(trigger)や優先度(priority)など、いくつかのデフォルト設定を提供します。このクラスは、これらの属性の一般的なデフォルト値のセットを提供します。
ユーザによるExtension定義の方法は、以下の3通りあります。このクラスを継承する、 make_extension()
によりクロージャ(closure)をデコレートする、Extensionとしてラムダ関数を含んでいる呼び出し可能なものを用いる。デコレータは僅かですがオーバヘッドを減少させ、使用が簡易です。一方、このクラスは柔軟性を提供します。例えば、動作を設定するメソッドを持つことができます。
ラムダ関数の使用は単純な目的のための1行コーディングを可能にしますが、ユーザは、 Trainer.extend()
への引数として設定を明示しなければなりません。呼び出し可能でこのクラスを継承しないものについては、Trainer.extend()
メソッドに明示的に指定しない限り、このクラスのデフォルト設定が用いられます。
Variables: |
---|
Methods
__call__
(trainer)[source]¶
Extensionを呼び出します。
実装は、このオペレータをオーバーライドしなければなりません。このメソッドは対応するTriggerが受け入れた反復処理(iteration)で呼び出されます。
Parameters: | trainer (Trainer) – このオペレータを呼び出すTrainer オブジェクト |
---|
initialize
(trainer)[source]¶
Trainer state(訓練ステート)を初期化します。
このメソッドは訓練ループの処理が開始する前に呼び出されます。 Trainer
のステートを修正するExtensionは、職化するためにこのメソッドをオーバーライド可能です。
Trainerがスナップショットから復元されたとき、このメソッドはTrainerのステートの適切なパートを復元しなければなりません。
例えば、 ExponentialShift
ExtensionはOptimizerのハイパーパラメータを呼び出しごとに変更します。ハイパーパラメータは、スナップショットに保存されていないことに注意してください。つまり、ハイパーパラメータの復元はExtensionの責任で行います。 ExponentialShift
Extensionはスナップショットからハイパーパラメータがロードされた場合、もしくは初期値が設定されていた場合、initialize
メソッドで復元を行います。
Parameters: | trainer (Trainer) – 訓練ループを実行するTrainer オブジェクト |
---|
serialize
(serializer)[source]¶
Extensionのステートをシリアル化する。
このExtensionを所有するTrainerがExtensionのステートをシリアル化する時、呼び出される。デフォルトではなにもシリアル化しない。
Attributes
default_name
¶
Extensionのデフォルト名。
デフォルトのクラス名。実装はこのプロパティをオーバーライド可能である。もしくは、これを隠蔽するためのクラス属性を提供する。
priority
= 100¶
trigger
= (1, 'iteration')¶