学習ログの出力結果の一部が「NaN」になる場合は、設定している学習率が高すぎる場合に生じる傾向があります。
この問題を抑制する方法としては、以下が検討頂ける項目となります。
(1) 初期の学習率を小さく設定する
→ trainingOptions の InitialLearnRate を 既定の 0.01 よりも小さい値に設定します
(2) 学習率を学習時に可変になるように設定する
→ trainingOptions の LearnRateSchedule を 既定の "none" から "piecewise" に変更します。現状では、学習率は常に固定値を利用します。
関連する学習率を可変にするパラメータに該当する項目としては、
InitialLearnRate
LearnRateDropFactor
LearnRateDropPeriod
となります。
InitialLearnRate は、上記での紹介と重複となりますが初期の学習率を設定します。
(既定では、 0.01 と設定されます)
LearnRateDropFactor は、実際にどの程度学習率を変更させるかの調整値となります。
既定では、0.1 と設定されますが、 0 ~ 1 の範囲で、減衰率を設定します。
LearnRateDropPeriod は、何Epoch 毎に更新を行うかの調整パラメータとなります。
既定では 10 と設定されております。