Batch Normalization Layerについて
2 次查看(过去 30 天)
显示 更早的评论
MATLABでAIで領域抽出の研究を行っています。
元々学習にとても時間がかかるようなデータ数で学習を行っています。いつもは学習がすべて完了するまで待つのではなく過学習が起こった段階でキャンセルをして止めていました。
今回、Batch Normalization LayerをU-netに追加して学習を行おうと思い学習させ、学習途中に保存しているネットワークでセグメンテーションを行おうとしたのですが
学習が完了する前にバッチ正規化層でネットワークを使用することが出来ません。trainNetworkを使用して学習を完了させてください。
というエラーが出てきました。
学習はいつもmaxEpochsを100にして行っていました。途中で学習を終了させ、ネットワークを使用したい場合普通にキャンセルで止めてもネットワークを使用する事はできますでしょうか?
または、途中に保存しているネットワークをtrainNetworkを使用して学習を完了させる方法を教えて頂きたいです。
よろしくお願いします。
1 个评论
michio
2019-10-16
検索用に対応する英語のエラーメッセージを記しておきます。
Unable to use networks with batch normalization layers before training is complete. Use trainNetwork to complete network training.
学習が完了する前に、バッチ正規化層でネットワークを使用することはできません。trainNetwork を使用してネットワークの学習を完了させてください。
采纳的回答
Kenta
2019-10-16
こんにちは。
訓練・検証・テストに分けて、検証データの結果を見ながら早期終了をした、そして、そこでの学習器を得たという認識でこの回答を書いています。
ただ、「学習途中に保存しているネットワークで」とありますが、それは下の方法をすでに試したということでしょうか?その場合は、また異なる方法が必要かもしれません。
上のリンクで、checkpointpathとあります。そのように、関数で指定すれば各エポック後に指定したパスに学習器が保存されます。任意のエポックでの学習器を取り出したいのであればそのようにするのが手軽かと思います。
ただ、早期終了で得た学習器がエラーを返すならこの方法でも同様かもしれません。ひとまず、私がうまく質問者様の内容をくみとれていない気もしますので、また返信いただけると幸いです。
6 个评论
michio
2019-10-16
こちらに似た質問がありましたが、理由はすでに議論されている通りです。
上では 1 エポックだけ 'InitialLearnRate' を小さくして学習させる、というコメントもついています。
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 イメージを使用した深層学習 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!