SE_BOKUのまとめノート的ブログ

SE_BOKUが知ってること・勉強したこと・考えたことetc

学習済パラメータを引き継ぎ追加学習する2つの方法を試す/Neural Network Console

今回は、学習済のモデルを引き継いで、発展させていく2つの方法を試してみます。 

f:id:arakan_no_boku:20190326212937j:plain

 

学習済パラメータを引き継ぎ追加学習する2つの方法

ざっくり以下の2つのケースがあります。

  • ① ネットワーク構造だけを引き継ぐ方法
  • ② ネットワーク+学習済のパラメータ込で引き継ぐ方法

 これを個別に見ていきます。

 

① ネットワーク構造だけを引き継ぐ方法

Traiingタブで左側に学習結果の一覧を表示させて、引き継ぎたいところで、右クリックしてメニューを表示します。

f:id:arakan_no_boku:20180414105551j:plain

 

ここで「Open in Edit Tab」を選ぶと、Editタブに選択した学習時点のネットワーク構造が表示されます。 

その状態で、名前をつけて保存で、別のプロジェクト名で保存すれば良いわけです。 

これは例えば、自動最適化で作られたうちで、まあまあ良い線いってるネットワーク構造があった。

でも、そのままではなくて、もうちょっと層を深くしていってみたい・・とか、それをベースに変更を加えて行きたいときに使えるかなと思います。

 

② ネットワーク+学習済のパラメータ込で引き継ぐ方法

例として、ネットワーク構造の自動最適化をやってみて、なんとなく良さげなものがあるけど、Epoch数が足らなくて学習が途中で終わってしまっている場合を考えます。

arakan-pgm-ai.hatenablog.com

arakan-pgm-ai.hatenablog.com

 

ここで、いちから学習しなおすのは、時間がもったいないです。

途中までいけてる結果を引き継いで、追加学習させたいですよね。 

 

パラメータを引き継ぐ方法

学習結果のところで右クリックしてメニューを表示します。

f:id:arakan_no_boku:20180414112242j:plain

 

ここで「Open in EDIT Tab with Weight」 を選びます。

そうすると、Editタブに選択した学習結果のネットワークモデルが表示されます。 

この操作で、各レイヤーのプロパティに学習済の重みとバイアスのパラメータが初期値として引き継がれる様にpathが設定されます。

f:id:arakan_no_boku:20180414113724j:plain

 

このまま学習を行うと追加学習になります。

あ。

もちろん、Structure Search のチェックがついてたらはずしてくださいね。

 

パラメータを引き継いで追加学習

これを引き続きで学習させてみました。

f:id:arakan_no_boku:20180414184108j:plain

 

確かに、続きのあたりから始まっているのがわかります。

追加学習にはなってますね。

ではでは。