필터 지우기
필터 지우기

CNNでのTrain​ingOptionで​の学習状況の表示のさ​せ方

조회 수: 1 (최근 30일)
KENji
KENji 2017년 12월 6일
댓글: KENji 2017년 12월 10일
R2017bを使用して分類学習を行っているのですが,学習オプションの'plot'を利用して,学習状況の表示をさせています. この時に表示されるグラフの'Smoothed'を非表示にしたいのですが,何か方法や設定ができるのでしょうか. また,この時に表示される軸の文字の大きさについても変更できますか?
宜しくお願いします.

채택된 답변

michio
michio 2017년 12월 7일
편집: michio 2017년 12월 7일
残念ながら、R2017bでは'Smoothed'を非表示にしたりフォントを変更するなどの変更を加えることはできません。 もし差し支えなければ、'Smoothed' を非表示にされたい理由や、他にもここは変更できるようになった方がよいなどもございましたら教えて頂けませんでしょうか?開発サイドへ要望としてフィードバックいたします。
学習状況を表示する方法として、学習オプションの 'OutputFcn' に表示用の関数を設定する方法があります。これは独自に表示させるプログラムを書く必要があります(それなりに手間です)が、表示内容は自由に設定することができます。ここに設定した関数は学習前、学習後、そして各反復後に実行されます。
  댓글 수: 11
michio
michio 2017년 12월 9일
TrainingLoss にしていましたか、失礼いたしました。
今回のエラーは ValidationLoss が iteration 毎に計算されないことが要因の様デスので、
if ~isempty(info.ValidationLoss)
addpoints(plot0bj,info.Epoch,info.ValidationLoss)
drawnow limitrate nocallbacks
end
という条件式を入れる必要がありそうです。学習オプションの 'ValidationFrequency' で Validation の頻度を指定することが出来ますので、ここを1にすれば上の条件式は必要ありませんが、毎回 Validation を行うのも学習効率を考えると大変かと思います。
下記は修正を加えた plotTrainAc です。
function plotTrainAc(info)
persistent plot0bj hfigure
if info.State=="start"
hfigure = figure;
plot0bj=animatedline('LineStyle','--');
xlabel("Iteration")
ylabel("ValidationLoss")
elseif info.State=="iteration"
figure(hfigure)
if ~isempty(info.ValidationLoss)
addpoints(plot0bj,info.Iteration,info.ValidationLoss)
drawnow limitrate nocallbacks
end
end
end
KENji
KENji 2017년 12월 10일
懇切丁寧に教えていただきありがとうございます. うまくいきました. 検証頻度を1にしないと,空の配列を参照してエラーが出ていたんですね.
ありがとうございました.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 深層学習データの前処理에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!