マニュアルを見てもイメージネットモデルのサンプルダウンロードをどうすれば良いか見つけられなかった。
ライブラリのマニュアルからImageNet Modelsの記載を見つけた。
https://nnabla.readthedocs.io/en/latest/python/api/models/imagenet.html
この中のリンクから各モデルのnnp形式のファイルがダウンロードできる。
利用方法
NNCのedit画面で右クリック、import からnnpを選ぶ。
入力部分を自分が使用するデータセットのサイズに合わせる。224pixが基本だが、事前学習のパラメーターは画像サイズに依存しないはずなので異なっても良いと思う。なお、0-255階調のカラー画像に0.01735かけて1.99引く正規化処理が行われている。これは、事前学習モデルの学習条件なので変更しない。また、データセット側の設定で0-1の正規化のチェックは外しておく。
最終段のアフィン(dense 全結合)層も自分のデータセットに合わせて1000から変更しておく。
この層だけは事前学習の重みが使えないので、W.Fileとb.Fileを空欄にする必要がある。
学習層の凍結
前半の学習は変更を加えたアフィン層(Dense層)だけにしたいところ。学習層の凍結解除を一気に設定できる方法が分からない。設定自体は、上の図のLRateMultiplier2カ所をいじる。次善の策として、全体の学習率を10^-7とかにして、アフィン層のLRateMultiplierを100とか1000にすればよさそう。
凍結したいレイヤーをまとめて選択して、どれか1カ所のconvolutionの設定でLRateMultiplierを0にすれば選択範囲がまとめて変更される。同様に選択範囲中のBatchNormalizationやaffineにも実施する。
モデルを育てる
いいモデルが育ってきたら、Trainタブの右側から Open in EDIT Tab with Weightを選んでパラメータを保持しながら改善していく。