転移学習に関して

388 views
Skip to first unread message

watch

unread,
Aug 27, 2018, 3:42:42 AM8/27/18
to Neural Network Console Users (JP)
日頃より本グループにはお世話になっております.ありがとうございます.
初学者で理解不足な部分が多く申し訳ありませんが,ご質問させていただきます.



現在初めてNNCで転移学習を試みようと考えております.

①ある画像サイズの入力をするモデルで学習済みのプロジェクト が存在し,
②別の画像サイズの入力をするモデルがある場合,
何らかの工夫によって①を②の転移学習に利用する方法はあるでしょうか?

ここまでの流れとして
  Open in EDT Tab with Weight
→ 最終Affine以外W.LRatemultiplierを0にして学習
→ 学習時,W.Fileのパラメータサイズと一致しないためAssertion error
という状況です.


小林由幸

unread,
Aug 29, 2018, 9:47:57 PM8/29/18
to Neural Network Console Users (JP)
Affine層のW.Fileプロパティのクリアをお試しください。
入力画像サイズによってAffineのパラメータサイズが変わってしまうようなケースでは、元のサイズの重みが読み込まれているとサイズが一致せずエラーになります。

①のネットワークの学習時に、Global average pooling(KernelShape、Strideプロパティが入力画像の縦横サイズであるとしたAveragePooling)を行った後Affineを行うようなネットワーク構成を用いることで、画像サイズを変更してもパラメータサイズが変化しないようにする方法もあります。

watch

unread,
Sep 12, 2018, 1:02:29 AM9/12/18
to Neural Network Console Users (JP)

小林様


日頃よりお世話になっております.お返事いただき誠にありがとうございます.


>①のネットワークの学習時に、Global average pooling(KernelShape、Strideプロパティが入力画像の縦横サイズであるとしたAveragePooling)を行った後Affineを行うようなネットワーク構成を用いることで、画像サイズを変更してもパラメータサイズが変化しないようにする方法もあります。
「①のネットワークの学習時に」とは
a.①のネットワークを学習するときに
b.①のネットワークを利用して②を学習するときに
のどちらのことを指していますでしょうか?

以上,よろしくお願いします.

小林由幸

unread,
Sep 19, 2018, 9:19:15 PM9/19/18
to Neural Network Console Users (JP)
転移学習を目的とする場合、a、bどちらでも期待通りの動作が得られるかと思います。
①のモデルを用いて何度も転移学習を行いたい場合は、aの時点でGlobal Average Poolingを用いる構成にしておいた方が転移学習の度にネットワークを編集する必要がなくなり、より良いと言えます。
また、aの時点でGlobal Average Poolingを用いておくことは、転移学習以外にサイズ違いの画像に認識を適用したい場合にもネットワーク編集の必要がなく、おすすめです。
Reply all
Reply to author
Forward
0 new messages