14
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

chainerにearly stoppingを追加してもらった話

Last updated at Posted at 2018-01-11

Chainer, Early Stopping

下記の2つのプルリクエストを通して,
chainerにearly stoppingを追加してもらいました.
(とても丁寧なレビューをしていただいた徳居さんに感謝...!)

このearly stoppingは,kerasのEarlyStoppingを翻訳した形で実装しています.
これの意味するところは,EarlyStoppingTriggerは学習を打ち切る処理のみを行なっているということです.

学習停止時点までで監視していた指標でもっとも良い性能を発揮した重みを読み込むためには,
@koreyouさんがChainerでのEarly stoppingを再考するで紹介してくださっているように,
MaxValueTrigger(MinValueTrigger)とsave/restoreを組み合わせた機構をtrainerに追加する必要があります.
これはkerasのModelCheckpointに相当します.

early stoppingを使うためには,以下のようにトリガを作成します.
monitorでearly stoppingが監視する指標を設定します.
max_triggerはearly stoppingが起きなかった場合にどこまで学習を行うかを指定します.(exampleでの該当箇所)

stop_trigger = triggers.EarlyStoppingTrigger(
    monitor='validation/main/loss',
    max_trigger=(20, 'epoch'))

あとは,このstop_triggerをtrainerに渡してあげればよいです.(exampleでの該当箇所)

trainer = training.Trainer(updater, stop_trigger, out=args.out)

つかってください,よろしくお願いします!

14
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?