(epoch番号以外の指標値は,コンソール(コマンドライン)にsummaryとして表示される)
いろいろググると,fitness値最大時のepochからbest.ptが算出されることがわかりました↓。

どうやらデフォルトでは,
fitness=mAP50 * 0.1 +mAP50-95 * 0,9
のようです。
自宅PCでやってみました。
train.pyを実行します(sモデル,batch=16, epochs=100)。

train.pyの終了画面です↓。

best.ptが作成されたときのmAP50は0.84と表示されました。
runs/expフォルダに格納されたresult.csvをExcelで開き,右端に"fitness"フィールドを追加し,計算させ,大きいもの順に並べ換えました↓。

best.ptのときのepochは87であることがわかりました。
Precision(=0.812),Recall(=0.781),mAP50-95(=0.551)の値もsummaryの出力と一致しています。
やったぜベイビー
というか,どうせならresult.csvでfitnessも出力してほしいですね。
この第87エポックの時に過学習が起きているか否かを,runs/expに出力されるグラフ群で判断し,必要ならばepochsの値を変えて再学習させる,とかいうふうになるようです。
またひとつYOLOv5について詳しくなってしまいました。